TWI411922B - 通用串列匯流排主機控制器和通用串列匯流排主機控制方法 - Google Patents
通用串列匯流排主機控制器和通用串列匯流排主機控制方法 Download PDFInfo
- Publication number
- TWI411922B TWI411922B TW98138780A TW98138780A TWI411922B TW I411922 B TWI411922 B TW I411922B TW 98138780 A TW98138780 A TW 98138780A TW 98138780 A TW98138780 A TW 98138780A TW I411922 B TWI411922 B TW I411922B
- Authority
- TW
- Taiwan
- Prior art keywords
- endpoint
- host controller
- storage unit
- usb host
- transmission
- Prior art date
Links
Landscapes
- Information Transfer Systems (AREA)
Description
本發明係有關於一種通用串列匯流排(USB)3.0協定中的NRDY(未就緒)/ERDY(就緒)機制,特別是有關於一種基於USB 3.0協定的USB主機控制器和USB主機控制方法,其能夠減少處理NRDY回應消息和ERDY請求的時間,提高USB主機控制器的性能。
目前,已經制定了通用串列匯流排(USB)3.0協定。在USB 3.0協定中定義了NRDY(未就緒)/ERDY(就緒)機制。第1圖為使用NRDY/ERDY機制的傳統USB主機控制器的方塊示意圖。如第1圖所示,USB主機控制器100連接到外部的系統記憶體300,並且還經由USB匯流排連接到一個或多個USB設備200(為簡單起見,在第1圖中僅顯示出一個USB設備200)。USB設備200包括一個或多個端點(Endpoint)201-1、201-2、...201-n。
當USB主機控制器100向所述一個或多個端點之一(假設為端點201-1)發送請求(例如輸入請求(IN request)或輸出請求(OUT request))以請求讀/寫資料時,如果端點201-1沒有準備好發送/接收所請求的資料,則端點201-1向USB主機控制器100發送NRDY回應消息(即,NRDY傳輸封包(transaction packet)),以表明該端點暫時不能發送/接收所請求的資料。當端點201-1隨後準備好發送/接收所請求的資料時,其向USB主機控制器100發送ERDY請求(即,ERDY傳輸封包),使得USB主機控制器100重新執行先前未能執行的對應傳輸。
為支援USB 3.0協定,Intel其後推出了擴展主控制器介面(Extensible Host Controller Interface,簡稱xHCI)協定,xHCI協定主要描述了系統軟體與硬體之間介面所用的暫存器和資料結構,為USB 3.0主控制器與USB 3.0週邊驅動程式之間提供標準通信方式。根據xHCI協定,當USB主機控制器100從端點201-1接收到NRDY傳輸封包時,其將該NRDY傳輸封包所攜帶的關於端點201-1的端點資訊(以下也稱為NRDY資訊)儲存到系統記憶體300中。所述NRDY資訊包括用於標識USB設備200的插槽ID(Slot ID)、用於標識USB設備200內的端點201-1的設備上下文索引(Device Context Index,DCI)、USB設備200的設備位址等等。隨後,當USB主機控制器100從端點201-1接收到ERDY傳輸封包時,USB主機控制器100讀取系統記憶體300,以便檢查在系統記憶體300中是否存在與所述ERDY傳輸封包匹配的NRDY資訊。如果找到匹配的NRDY資訊,則USB主機控制器100根據該NRDY資訊而重新執行先前未能執行的對於端點201-1的傳輸。
在上述傳統USB主機控制器中,存在以下問題:
(1)每次接收到NRDY傳輸封包時,USB主機控制器都將NRDY資訊儲存到系統記憶體中。此外,每次接收到ERDY傳輸封包時,USB主機控制器都讀取系統記憶體,用以在其中尋找匹配的NRDY資訊。由於系統記憶體位於USB主機控制器外部,因此,上述過程需要較長的時間,這使得USB主機控制器的回應時間增大,性能下降。
(2)在USB主機控制器中,會設置一定容量的緩衝器,用來暫存來自USB設備的各種傳輸封包。例如在第1圖中,USB主機控制器100內設置了SS鏈結Rx 4標頭佇列緩衝器(SS Link R×4 Header Queue)101,用於暫存連接到該USB主機控制器的所有USB設備發送的傳輸封包。該緩衝器101被設置為最多容納4個傳輸封包。然而,由上述可知,傳統的USB主機控制器在處理一個ERDY傳輸封包時,因過程繁雜而需要較長的回應時間,若同時有多個的USB設備向該USB主機控制器發送ERDY傳輸封包,則該緩衝器101會被存滿,以至於阻礙該USB主機控制器根據所接收的ERDY傳輸封包重新安排對於相應端點的傳輸。
因此,需要一種USB主機控制器和USB主機控制方法,其能夠減少儲存NRDY資訊以及回應ERDY傳輸封包所耗費的時間,提高USB主機控制器的性能。
考慮到以上問題而做出了本發明。本發明的一個目的是提供一種USB主機控制器和USB主機控制方法,其能夠在接收到NRDY傳輸封包時,減少儲存NRDY資訊的時間,並且能夠在接收到ERDY傳輸封包時,減少尋找匹配的NRDY資訊的時間,從而減小SS鏈結Rx 4標頭佇列緩衝器被存滿的可能性,提高USB主機控制器的性能。
根據本發明的一個方面,提供了一種USB主機控制器,連接到包括一個或多個端點的USB設備,並且向所述一個或多個端點中第一端點發送請求。USB主機控制器包括,第一儲存單元以及第一控制單元,用於將第一端點回應於所述請求而發送的未就緒傳輸封包所攜帶的關於第一端點的端點資訊儲存在第一儲存單元中,其中所述未就緒傳輸封包表示所述第一端點無法執行所述請求。
根據本發明的另一個方面,提供了一種USB主機控制器,連接到包括一個或多個端點的USB設備,並且向所述一個或多個端點中一第一端點發送一請求,該USB主機控制器包括,一第一儲存單元以及一第一控制單元,用於將所述第一端點回應於所述請求而發送的一未就緒傳輸封包所攜帶的關於所述第一端點的一端點資訊儲存在所述第一儲存單元中。當USB主機控制器接收到由所述一個或多個端點中的一第二端點發送的一就緒傳輸封包時,所述第一控制單元檢查在所述第一儲存單元中是否存在與該就緒傳輸封包匹配的端點資訊,並且當發現匹配的端點資訊時,執行對於第二端點的傳輸,其中所述未就緒傳輸封包表示所述第一端點無法執行所述請求。
根據本發明的再一方面,提供了一種USB主機控制方法,用於USB主機控制器,該USB主機控制器包括第一儲存單元,並且連接到包括一個或多個端點的USB設備。該控制方法包括以下步驟:向所述一個或多個端點中第一端點發送請求;以及將第一端點回應於所述請求而發送的未就緒傳輸封包所攜帶的關於第一端點的端點資訊儲存在第一儲存單元中,其中所述未就緒傳輸封包表示所述第一端點無法執行所述請求。
如上所述,在根據本發明的USB主機控制器內部設置了第一儲存單元,並且可以將NRDY回應消息攜帶的端點資訊儲存在該第一儲存單元中,而不是儲存在系統記憶體中。因此,減少了儲存端點資訊的時間。此外,當從端點接收到ERDY請求時,只需訪問第一儲存單元以尋找匹配的端點消息,而不需要訪問系統記憶體。因此,縮短了處理ERDY請求的時間,避免了訪問系統記憶體過程的繁雜,減小了USB主機控制器內的SS鏈結Rx 4標頭佇列緩衝器被存滿的可能性,提高了USB主機控制器的性能。
為讓本發明之特徵和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下:
下面將參照附圖來描述根據本發明實施例的USB主機控制器和控制方法。在附圖中,相同的參考標號自始至終表示相同的元件。
首先,參照第2圖來描述根據本發明實施例的USB主機控制器。應當注意,第2圖所示的USB主機控制器僅僅是與本發明的構思有關的基於USB 3.0協定與xHCI協定的USB主機控制器的一部分。
如第2圖所示,USB主機控制器400連接到系統記憶體300,並且經由USB匯流排連接到USB設備200,USB設備200包括一個或多個端點201-1、201-2、...、201-n。應當注意,可以將一個或多個USB設備連接到USB主機控制器400,但是由於它們的結構和工作方式基本相同,因此為簡單起見,在第2圖中只示出一個USB設備200。
USB主機控制器400包括傳輸管理器401、調度管理器402以及SS鏈結Rx 4標頭佇列緩衝器403。調度管理器402包括週期性/非同步(Periodic/Async)控制器4021、NERDY控制器4022以及高速暫存緩衝器(scratchpad buffer)4023。
傳輸管理器401管理關於USB設備200的傳輸,例如向USB設備200中的端點(為便於說明,假設為端點201-1)發送請求,接收來自該端點的回應消息/請求等等。所發送的請求可以是輸入請求或輸出請求,所接收的回應消息/請求可以是NRDY回應消息或ERDY請求。此外,如下文所述,當調度管理器402發現NRDY位址列表已被存滿時,傳輸管理器401回應于來自調度管理器402的命令而暫停對連接到USB主機控制器400的所有USB設備的端點發送可能引起NRDY回應消息的傳輸。
如上文所述,當端點201-1從USB主機控制器400接收到讀/寫資料的請求時,如果端點201-1正處於忙碌狀態,或者由於其他原因而沒有準備好發送/接收所請求讀/寫的資料,則端點201-1向USB主機控制器400發送NRDY傳輸封包,作為對該請求的回應。該NRDY傳輸封包包括與端點201-1有關的端點資訊(以下也稱為NRDY資訊),其中包括:用於標識端點201-1所屬的USB設備200的“插槽ID”(Slot ID)、用於標識端點201-1的“設備上下文索引”(DCI)、USB設備200的“設備位址”(Device Address)、端點201-1的“端點號碼”(Endpoint Number)、以及表示該NRDY傳輸封包所針對的上述請求是輸入請求(讀請求)還是輸出請求(寫請求)的“方向”(Direction)。
週期性/非同步控制器4021向NERDY控制器4022發送用於將NRDY傳輸封包所攜帶的NRDY資訊載入到NRDY位址列表中的請求。稍後將詳細描述所述NRDY地址列表。此外,當USB主機控制器400收到端點201-1發送的NRDY傳輸封包時,會中斷正在進行中的與端點201-1的資料傳輸,以待收到端點201-1發送的ERDY傳輸封包後再繼續資料傳輸。因此,在收到NRDY傳輸封包後,週期性/非同步控制器4021將指示對應傳輸中斷點的位置資訊儲存在高速暫存緩衝器4023中,以便當USB主機控制器400收到端點201-1發送ERDY傳輸封包,需繼續資料傳輸時,可從之前收到NRDY傳輸封包時記錄的傳輸中斷點接續資料傳輸。關於傳輸中斷點的位置資訊的具體格式及其在高速暫存緩衝器4023中的儲存方式為本領域技術人員的公知技術,在此不再贅述。應當注意,儘管在第2圖中週期性/非同步控制器4021為單一個元件,但是也可以將其分為週期性控制器和非同步控制器,並且由週期性控制器或非同步控制器執行上述功能。
NERDY控制器4022包括控制單元40221和NRDY位址高速緩衝記憶體40222。
NRDY位址高速緩衝記憶體40222用於儲存所述NRDY資訊,即,關於端點201-1的端點資訊。具體地,可以在NRDY位址高速緩衝記憶體40222中建立NRDY位址列表,並且作為該位址列表的條目來儲存NRDY資訊。作為示例,該NRDY位址列表可以包括32個條目,每個條目的大小為26位元(bit),用於儲存從一個NRDY傳輸封包提取的NRDY資訊。所述條目可以採用第3圖所示的格式,該格式中的各個欄位的長度和含義下表1中給出。
當NERDY控制器4022接收到從週期性/非同步控制器4021發送的載入NRDY資訊的請求時,控制單元40221將所述關於端點201-1的端點資訊(即,NRDY資訊)載入到NRDY位址列表的空閒條目中,並且將該條目的“V”標誌位元設置為1。然後,控制單元40221檢查所述NRDY位址列表是否已被存滿,即,在32個條目中是否都已經儲存了NRDY資訊。如果NRDY位址列表已被存滿,則控制單元40221向傳輸管理器401發送命令,指示暫停對連接到USB主機控制器400的所有USB設備發送傳輸,傳輸管理器401收到該命令後,即暫停所有可能引起NRDY回應的傳輸。反之,如果NRDY位址列表沒有被存滿,則控制單元40221可以繼續處理其他要處理的傳輸。
每當從USB設備中的端點接收到NRDY傳輸封包時,USB主機控制器都執行上述過程,從而將相應的NRDY資訊儲存在NRDY位址高速緩衝記憶體40222中。
如上所述,在某個端點發送了NRDY傳輸封包之後,如果該端點隨後變得能夠發送/接收所請求讀/寫的資料,則該端點向USB主機控制器400發送ERDY請求,即ERDY傳輸封包。該ERDY傳輸封包包括用於表示該端點所屬的USB設備的位址的“設備位址”、該端點的“端點號碼”、用於表示該ERDY傳輸封包所針對的請求是輸入請求還是輸出請求的“方向”、以及其他資訊。
傳輸管理器401接收該ERDY傳輸封包,並傳輸給調度管理器402。然後,控制單元40221訪問NRDY位址高速緩衝記憶體40222,並且將該ERDY傳輸封包中的“設備位址”、“端點號碼”和“方向”分別與儲存在NRDY位址列表中的所有有效的NRDY資訊的對應專案逐一進行比較,以便確定在該位址列表中是否儲存了與該ERDY傳輸封包匹配的NRDY資訊。
如果在NRDY位址列表中找到匹配的NRDY資訊,則控制單元40221提取該條目中的NRDY資訊,並將NRDY位址列表中儲存該NRDY資訊的條目釋放,而後根據提取的該條目中的“插槽ID”和“設備上下文索引”欄位,從高速暫存緩衝器4023讀取先前儲存的對應的指示傳輸中斷點的位置資訊,使得傳輸管理器401從該傳輸中斷點起重新開始執行先前由於NRDY回應而未能執行的關於該端點的傳輸。
SS鏈結Rx 4標頭佇列緩衝器403與第1圖所示的SS鏈結Rx 4標頭佇列緩衝器101相同,用於暫時儲存由連接到USB主機控制器的所有USB設備發送的請求,並且在本實施例中被設置為最多容納4個ERDY請求。
可以看到,在根據本發明實施例的USB主機控制器內部設置了NRDY位址高速緩衝記憶體。USB主機控制器將從端點接收的NRDY傳輸封包所攜帶的NRDY資訊儲存在該高速緩衝記憶體中,而不是像傳統技術那樣儲存在系統記憶體中,從而減少了儲存NRDY資訊所需的時間。當接收到ERDY請求時,USB主機控制器只需訪問該NRDY位址高速緩衝記憶體以尋找匹配的NRDY資訊,而不需要訪問外部的系統記憶體,從而減少了回應ERDY請求組的時間,並且減小了SS鏈結Rx 4標頭佇列緩衝器403被存滿的可能性。
在上文中,NRDY位址高速緩衝記憶體40222位於NERDY控制器4022中,但並非用以限制本發明。在其它實施例中,也可以將該NRDY位址高速緩衝記憶體放置在USB主機控制器內的其他位置上。
下面,將參照第4圖來描述根據本發明實施例的接收到NRDY傳輸封包時的處理。第4圖顯示出了該處理過程的流程圖。
如第4圖所示,在USB主機控制器400向USB設備200中的端點(假設為端點201-1)發送請求之後,在步驟S501中,傳輸管理器401接收到來自端點201-1的NRDY傳輸封包。
然後,在步驟S502中,週期性/非同步控制器4021向NERDY控制器4022發送用於將NRDY傳輸封包所攜帶的關於端點201-1的端點資訊(即,NRDY資訊)載入到NRDY位址列表中的請求。如上文所述,該NRDY資訊包括“設備上下文索引”、“插槽ID”、“設備位址”、“端點號碼”以及“方向”。
接下來,在步驟S503中,週期性/非同步控制器4021將指示對應傳輸中斷點的位置資訊儲存在高速暫存緩衝器4023中。
隨後,在步驟S504中,回應於週期性/非同步控制器4021發送的載入請求,NERDY控制器4022中的控制單元40221將從NRDY傳輸封包提取的所述NRDY資訊載入到NRDY位址高速緩衝記憶體40222內的NRDY位址列表中,作為該列表的一個條目。NRDY位址列表及其條目的格式與上文所述的相同。
然後,在步驟S505中,控制單元40221檢查所述NRDY位址列表是否已經被存滿。如果該NRDY位址列表已經被存滿,則在步驟S506中,控制單元40221向傳輸管理器401發送命令,指示暫停對連接到USB主機控制器200的所有USB設備發送傳輸,傳輸管理器401收到該命令後,即暫停發送所有可能引起NRDY回應的傳輸,以防止NRDY位址列表溢出。在這種情況下,傳輸管理器401將一直等待到NRDY位址列表中的某個條目被釋放,才會繼續執行其他傳輸。另一方面,當在步驟S505中確定所述NRDY位址列表未被存滿時,傳輸管理器401繼續執行其他要處理的傳輸。
第4圖所示的各個步驟不一定都是必需的。例如,執行步驟S505和S506的目的是為了防止NRDY位址列表溢出。然而,可以透過將NRDY位址列表的容量設置得足夠大來實現這一目的,此時,不需要執行步驟S505和步驟S506。此外,步驟S502和S503的執行順序不限於第4圖所示的順序,也可以同時執行這兩個步驟,或者可以先執行步驟S503再執行步驟S502。
透過將NRDY資訊儲存在USB主機控制器內部的NRDY位址高速緩衝記憶體中,與傳統技術相比,減少了儲存NRDY資訊所需的時間,提高了USB主機控制器的性能。
下面,將參照第5圖來描述根據本發明實施例的接收到ERDY傳輸封包時的處理。第5圖顯示出了該處理過程的流程圖。
如第5圖所示,在步驟S601,傳輸管理器401從USB設備200的端點(假設為端點201-1)接收ERDY傳輸封包。如上所述,該ERDY傳輸封包包括USB設備200的“設備位址”、該端點201-1的“端點號碼”、用於表示該ERDY傳輸封包所針對的請求是輸入請求還是輸出請求的“方向”、以及其他資訊。
在步驟S602中,NERDY控制器4022中的控制單元40221訪問NRDY位址高速緩衝記憶體40222,並且將ERDY傳輸封包中的資訊(以下也稱為ERDY資訊)與NRDY位址列表中的所有有效的NRDY資訊進行匹配,具體地,將該ERDY傳輸封包中的“設備位址”、“端點號碼”和“方向”分別與儲存在NRDY位址列表中的所有有效的NRDY資訊的對應專案逐一進行比較。然後,在步驟S603中,控制單元40221確定在NRDY位址列表中是否找到與該ERDY傳輸封包匹配的NRDY資訊。
如果在步驟S603中沒有找到匹配的NRDY資訊,這表明USB主機控制器400沒有接收到端點201-1之前發送的NRDY回應消息,或者USB主機控制器400之前沒有向端點201-1發送過請求。因此,在步驟S604中,控制單元40221向端點201-1報告錯誤,然後該處理結束。另一方面,如果在步驟S603中找到匹配的NRDY資訊,則在步驟S605中,控制單元40221提取該條目中的NRDY資訊,並將NRDY位址列表中儲存該NRDY資訊的對應條目釋放,即,刪除該條目中儲存的NRDY資訊。然後,在步驟S606中,控制單元40221根據事先提取的該條目中的“插槽ID”和“設備上下文索引”欄位,從高速暫存緩衝器4023讀取先前儲存的對應的指示傳輸中斷點的位置資訊。
接下來,在步驟S607中,傳輸管理器401從所述傳輸中斷點起重新開始執行先前由於NRDY回應而被未能執行的關於端點201-1的傳輸。然後,該過程結束。
在執行上述處理期間USB主機控制器從其他端點接收的請求被暫時儲存在SS鏈結Rx 4標頭佇列緩衝器403中。
可以看到,由於NRDY資訊被儲存在USB主機控制器內部的NRDY位址高速緩衝記憶體中,因此,當接收到ERDY傳輸封包時,USB主機控制器只需訪問該NRDY位址高速緩衝記憶體以尋找匹配的NRDY資訊,而不需要像傳統技術那樣訪問外部的系統記憶體。這樣,減少了尋找匹配的NRDY資訊所需的時間,免去了訪問系統記憶體過程的繁雜,加快了回應ERDY請求的速度,並且減小了SS鏈結Rx 4標頭佇列緩衝器被存滿的可能性。
測試表明,在傳統的USB主機控制器中,在系統記憶體中預先儲存了與所接收的ERDY傳輸封包匹配的NRDY資訊的情況下,從接收到ERDY傳輸封包開始到重新開始執行對於相應端點的傳輸所耗費的時間為幾毫秒,而在根據本發明實施例的USB主機控制器中,在NRDY位址高速緩衝記憶體中預先儲存了與所接收的ERDY傳輸封包匹配的NRDY資訊的情況下,從接收到ERDY傳輸封包開始到重新開始執行對於相應端點的傳輸所耗費的時間僅為幾十微秒。可見,根據本發明實施例的USB主機控制器具有更高的性能。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100、400...USB主機控制器
101...SS鏈結Rx 4標頭佇列緩衝器
200...USB設備
300...系統記憶體
201-1~201-n...端點
401...傳輸管理器
402‧‧‧調度管理器
403‧‧‧SS鏈結Rx 4標頭佇列緩衝器
4021‧‧‧週期性/非同步控制器
4022‧‧‧NERDY控制器
4023‧‧‧高速暫存緩衝器
40221‧‧‧控制單元
40222‧‧‧NRDY位址高速緩衝記憶體
S501~S506、S601~S607‧‧‧步驟
第1圖顯示出了使用NRDY/ERDY機制的傳統USB主機控制器的示意性框圖;
第2圖是根據本發明實施例的USB主機控制器的示意性框圖;
第3圖是示出根據本發明實施例的NRDY位址列表的條目的圖;
第4圖是示出根據本發明實施例的接收到NRDY傳輸封包時的處理的流程圖;
第5圖是示出根據本發明實施例的接收到ERDY傳輸封包時的處理的流程圖。
200...USB設備
201-1~201-n...端點
300...系統記憶體
400...USB主機控制器
401...傳輸管理器
402...調度管理器
403...SS鏈結Rx 4標頭佇列緩衝器
4021...週期性/非同步控制器
4022...NERDY控制器
4023...高速暫存緩衝器
40221...控制單元
40222...NRDY位址高速緩衝記憶體
Claims (16)
- 一種USB主機控制器,連接到包括一個或多個端點的USB設備,並且向所述一個或多個端點中一第一端點發送一請求,該USB主機控制器包括:一第一儲存單元;以及一第一控制單元,用於將所述第一端點回應於所述請求而發送的一未就緒傳輸封包所攜帶的關於所述第一端點的端點資訊儲存在所述第一儲存單元中,其中所述未就緒傳輸封包表示所述第一端點無法執行所述請求,其中在將所述端點資料儲存在所述第一儲存單元中之後,該第一控制單元檢查所述第一儲存單元是否已被存滿,如果所述第一儲存單元已被存滿,則該第一控制單元進行控制使得暫停所有對於所述一個或多個端點的發送傳輸。
- 如申請專利範圍第1項所述的USB主機控制器,其中,在所述第一儲存單元中以列表的形式儲存所述端點資訊,並且其中,在將所述端點資訊儲存在所述列表中之後,第一控制單元檢查所述列表是否已被存滿,如果所述列表已被存滿,則第一控制單元進行控制使得暫停對於所述一個或多個端點的發送傳輸。
- 如申請專利範圍第1項所述的USB主機控制器,其中,還包括:一第二儲存單元;以及一第二控制單元,用於在USB主機控制器接收到所述 第一端點發送的所述未就緒傳輸封包時,將一指示相應的傳輸中斷點的位置資訊儲存在所述第二儲存單元中。
- 如申請專利範圍第3項所述的USB主機控制器,其中,當USB主機控制器接收到由所述一個或多個端點中的一第二端點發送的就緒傳輸封包時,所述第一控制單元檢查在所述第一儲存單元中是否存在與該就緒傳輸封包匹配的端點資訊,並且當發現匹配的端點資訊時,執行對於所述第二端點的傳輸。
- 如申請專利範圍第4項所述的USB主機控制器,其中,所述第一控制單元從所述第二儲存單元讀取與所述匹配的端點資訊相對應的指示傳輸中斷點的位置資訊,並且從該傳輸中斷點起執行對於第二端點的傳輸。
- 一種USB主機控制器,連接到包括一個或多個端點的USB設備,並且向所述一個或多個端點中一第一端點發送一請求,該USB主機控制器包括:一第一儲存單元;以及一第一控制單元,用於將所述第一端點回應於所述請求而發送的一未就緒傳輸封包所攜帶的關於所述第一端點的一端點資訊儲存在所述第一儲存單元中,其中,當USB主機控制器接收到由所述一個或多個端點中的一第二端點發送的一就緒傳輸封包時,所述第一控制單元檢查在所述第一儲存單元中是否存在與該就緒傳輸封包匹配的端點資訊,並且當發現匹配的端點資訊時,執行對於第二端點的傳輸,其中所述未就緒傳輸封包表示所述第一端點無法執行 所述請求,其中在將所述端點資料儲存在所述第一儲存單元中之後,該第一控制單元檢查所述第一儲存單元是否已被存滿,如果所述第一儲存單元已被存滿,則該第一控制單元進行控制使得暫停所有對於所述一個或多個端點的發送傳輸。
- 如申請專利範圍第6項所述的USB主機控制器,其中,在所述第一儲存單元中以列表的形式儲存所述端點資訊,並且其中,在將所述端點資訊儲存在所述列表中之後,第一控制單元檢查所述列表是否已被存滿,如果所述列表已被存滿,則第一控制單元進行控制使得暫停對於所述一個或多個端點的發送傳輸。
- 如申請專利範圍第7項所述的USB主機控制器,其中,所述端點資訊至少包括一設備上下文索引,一插槽ID,一設備位址,一端點號碼,以及一方向。
- 如申請專利範圍第8項所述的USB主機控制器,其中,所述第一控制單元檢查在所述第一儲存單元中是否存在與該就緒傳輸封包匹配的端點資訊,是根據所述設備位址,所述端點號碼和所述方向來檢索所述列表,來找到匹配的端點資訊。
- 如申請專利範圍第6項所述的USB主機控制器,其中,所述第一控制單元還從所述第一儲存單元刪除所述匹配的端點資訊。
- 一種USB主機控制方法,用於USB主機控制器,該USB主機控制器包括第一儲存單元,並且連接到包括一 個或多個端點的USB設備,該控制方法包括以下步驟:向所述一個或多個端點中一第一端點發送請求;以及將所述第一端點回應於所述請求而發送的一未就緒傳輸封包所攜帶的關於第一端點的端點資訊儲存在第一儲存單元中,其中所述未就緒傳輸封包表示所述第一端點無法執行所述請求,其中在將所述端點資料儲存在所述第一儲存單元中之後,該第一控制單元檢查所述第一儲存單元是否已被存滿,如果所述第一儲存單元已被存滿,則該第一控制單元進行控制使得暫停所有對於所述一個或多個端點的發送傳輸。
- 如申請專利範圍第11項所述的控制方法,其中,在所述第一儲存單元中以列表的形式儲存所述端點資訊,並且所述方法還包括以下步驟:在將所述端點資訊儲存在所述列表中之後,檢查所述列表是否已被存滿,如果所述列表已被存滿,則暫停對於所述一個或多個端點的發送傳輸。
- 如申請專利範圍第11項所述的控制方法,還包括以下步驟:在所述USB主機控制器接收到所述第一端點發送的所述未就緒傳輸封包時,將指示相應的傳輸中斷點的位置資訊儲存到所述USB主機控制器內的一第二儲存單元中。
- 如申請專利範圍第13項所述的控制方法,還包括以下步驟: 當所述USB主機控制器接收到由所述一個或多個端點中的一第二端點發送的一就緒傳輸封包時,檢查在所述第一儲存單元中是否存在與該就緒傳輸封包匹配的端點資訊,並且當發現匹配的端點資訊時,執行對於所述第二端點的傳輸。
- 如申請專利範圍第14項所述的控制方法,其中,所述執行對於所述第二端點的傳輸的步驟包括:從所述第二儲存單元讀取與所述匹配的端點資訊相對應的指示傳輸中斷點的位置資訊;以及從該傳輸中斷點起執行對於所述第二端點的傳輸。
- 如申請專利範圍第14項所述的控制方法,還包括以下步驟:從第一儲存單元刪除所述匹配的端點資訊。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW98138780A TWI411922B (zh) | 2009-11-16 | 2009-11-16 | 通用串列匯流排主機控制器和通用串列匯流排主機控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW98138780A TWI411922B (zh) | 2009-11-16 | 2009-11-16 | 通用串列匯流排主機控制器和通用串列匯流排主機控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201118586A TW201118586A (en) | 2011-06-01 |
TWI411922B true TWI411922B (zh) | 2013-10-11 |
Family
ID=44935736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW98138780A TWI411922B (zh) | 2009-11-16 | 2009-11-16 | 通用串列匯流排主機控制器和通用串列匯流排主機控制方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI411922B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930585B2 (en) * | 2012-05-29 | 2015-01-06 | Mediatek Inc. | USB host controller and scheduling methods thereof |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7079865B1 (en) * | 1999-05-13 | 2006-07-18 | Skyworks Solutions, Inc. | Apparatus and method for connecting a cellular telephone to a universal serial bus |
US20080065796A1 (en) * | 1999-08-04 | 2008-03-13 | Super Talent Electronics Inc. | High-Level Bridge From PCIE to Extended USB |
CN101266584A (zh) * | 2008-05-13 | 2008-09-17 | 威盛电子股份有限公司 | 通用串行总线主机控制器及其控制方法 |
TW200903264A (en) * | 2007-07-04 | 2009-01-16 | Ours Technology Inc | Data sharing and transfer systems and methods |
US20090088024A1 (en) * | 2007-09-27 | 2009-04-02 | Yun Ling | High speed connector and receptacle with backward compatibility to usb 2.0 |
US20090094621A1 (en) * | 2007-10-05 | 2009-04-09 | Pano Logic, Inc. | Universal serial bus host controller driver over a network |
-
2009
- 2009-11-16 TW TW98138780A patent/TWI411922B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7079865B1 (en) * | 1999-05-13 | 2006-07-18 | Skyworks Solutions, Inc. | Apparatus and method for connecting a cellular telephone to a universal serial bus |
US20080065796A1 (en) * | 1999-08-04 | 2008-03-13 | Super Talent Electronics Inc. | High-Level Bridge From PCIE to Extended USB |
TW200903264A (en) * | 2007-07-04 | 2009-01-16 | Ours Technology Inc | Data sharing and transfer systems and methods |
US20090088024A1 (en) * | 2007-09-27 | 2009-04-02 | Yun Ling | High speed connector and receptacle with backward compatibility to usb 2.0 |
US20090094621A1 (en) * | 2007-10-05 | 2009-04-09 | Pano Logic, Inc. | Universal serial bus host controller driver over a network |
CN101266584A (zh) * | 2008-05-13 | 2008-09-17 | 威盛电子股份有限公司 | 通用串行总线主机控制器及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201118586A (en) | 2011-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5902834B2 (ja) | 暗示的なメモリの登録のための明示的なフロー制御 | |
US9875206B2 (en) | Methods and devices for extending USB 3.0-compliant communication | |
US9311265B2 (en) | Techniques for improving throughput and performance of a distributed interconnect peripheral bus connected to a host controller | |
CN101014942B (zh) | 使用高级主机控制器接口来传送数据的方法和仪器 | |
JP2018185814A (ja) | NVMe−oF SSDにおける低レイテンシ直接データアクセス方法、及びそのためのシステム | |
CN101673255B (zh) | 通用串行总线主机控制器和通用串行总线主机控制方法 | |
US11403246B2 (en) | Methods and devices for extending USB 3.0-compliant communication over an extension medium | |
TWI247215B (en) | Communication system for raising channel utilization rate and communication method thereof | |
US10229084B2 (en) | Synchronous input / output hardware acknowledgement of write completions | |
US6581116B1 (en) | Method and apparatus for high performance transmission of ordered packets on a bus within a data processing system | |
CN116204487A (zh) | 远程数据访问方法及装置 | |
US10489322B2 (en) | Apparatus and method to improve performance in DMA transfer of data | |
US7409486B2 (en) | Storage system, and storage control method | |
US10133691B2 (en) | Synchronous input/output (I/O) cache line padding | |
TWI411922B (zh) | 通用串列匯流排主機控制器和通用串列匯流排主機控制方法 | |
US10949095B2 (en) | Method, network adapters and computer program product using network adapter memory to service data requests | |
US20170147517A1 (en) | Direct memory access system using available descriptor mechanism and/or pre-fetch mechanism and associated direct memory access method | |
CN109992560B (zh) | 一种通信方法及通信系统 | |
WO2024037193A1 (zh) | 网络存储处理设备、存储服务器、数据存储及读取方法 | |
JP2715815B2 (ja) | デ−タ書き込み方法 | |
TWI831536B (zh) | 在有限的記憶體條件下的轉接器及資料傳輸方法 | |
JP2004334840A (ja) | システムバスの制御方法及び関連装置 | |
WO2023040683A1 (zh) | 传输数据的方法和输入输出设备 | |
JP5587530B2 (ja) | エンジン・プロセッサ連携システム及び連携方法 | |
US20220027305A1 (en) | Techniques for configuring endpoints within a usb extension environment |