專利名稱:Usb主機控制器以及用于usb主機控制器的控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及USB主機控制器和用于USB主機控制器的控制方法。
背景技術(shù):
近年來,通用串行總線(USB)接口已經(jīng)被用作用于連接計算機和它的外圍裝置的 接口。USB接口還被使用在嵌入系統(tǒng)中。圖5是示出了數(shù)據(jù)輸入/輸出裝置和被連接至該 裝置的USB外圍裝置的的構(gòu)造示例的圖。圖5選擇性地僅示出作為數(shù)據(jù)輸入裝置的存儲單 元,和用于這些存儲裝置的輸入/輸出控制器。例如,當(dāng)對來自于諸如數(shù)碼照相機的裝置中 的移動或者靜態(tài)圖像數(shù)據(jù)進行存儲時,使用存儲單元。圖5中所示的數(shù)據(jù)輸入/輸出裝置122包括CPU 120、存儲器121、USB主機控制器 111、第一和第二連接器116、117、串行ATA (SATA)控制器114、硬盤115、以及總線113。CPU 120、存儲器121、以及USB主機控制器111經(jīng)由總線113而相互連接。另外,硬盤115經(jīng)由 SATA控制器114而連接至總線113。此外,USB存儲器118經(jīng)由第一連接器116被連接至 USB主機控制器111,并且外部硬盤119經(jīng)由第二連接器117被連接至USB主機控制器。同時,USB主機控制器通常已經(jīng)被構(gòu)建在使用USB作為數(shù)據(jù)通信裝置的裝置中。圖 6是示出圖5中所示的USB主機控制器111的圖。圖6中所示的USB主機控制器111包括 CPU接口控制塊108、用于USB管道(pipe)的緩沖存儲器102、第一 USB管道控制塊104、第 二 USB管道控制塊105、第η USB管道控制塊106、USB接口控制塊107、端口 109、110、以及 總線112。CPU接口控制塊108、用于USB管道的緩沖存儲器102、第一 USB管道控制塊104、 第二 USB管道控制塊105、以及第η USB管道控制塊106經(jīng)由總線112被相互連接。在下文中將會參考圖7描述用于將來自于USB存儲器118的數(shù)據(jù)移到圖5中所示 的外部硬盤119的處理序列。另外,將會參考圖8描述這時的數(shù)據(jù)流。另外,在本示例中,第 一 USB管道控制塊104被用于讀取來自于USB存儲器118的數(shù)據(jù)(BulkIN),并且第二 USB 管道控制器塊105用于將數(shù)據(jù)(BulkOUT)寫入外部硬盤119。首先,為了從USB存儲器118讀取要被復(fù)制到圖5中的外部硬盤119的數(shù)據(jù),CPU 120執(zhí)行處理以使USB主機控制器111發(fā)出BulkIN傳輸請求(SlOl)。然后,USB主機控制 器111通過向USB存儲器118發(fā)出BulkIN傳輸請求來請求數(shù)據(jù)(S102)。響應(yīng)于BulkIN請求,USB存儲器118將數(shù)據(jù)傳輸?shù)経SB主機控制器111 (S103)。 USB主機控制器111將從USB存儲器中接收到的數(shù)據(jù)存儲在用于USB管道的緩沖存儲器102 的圖8中的第一緩沖存儲器區(qū)域141中(S104)。然后,在將來自于USB存儲器的所有數(shù)據(jù)存儲在用于USB管道的緩沖存儲器102 中之后,USB主機控制器111通知CPU 120中斷請求(S105)。在檢測中斷請求之后,CPU 120 將被存儲在用于USB管道的緩沖存儲器102的第一緩沖存儲器區(qū)域141的數(shù)據(jù)傳輸?shù)綀D5 的數(shù)據(jù)輸入/輸出裝置122的存儲器121中,并且將數(shù)據(jù)存儲在其中(S106)。接下來,為了將數(shù)據(jù)傳輸?shù)酵獠坑脖P119,被存儲在存儲器121中的數(shù)據(jù)被傳輸?shù)?USB主機控制器111 (S107)。USB主機控制器111將接收到的數(shù)據(jù)存儲在用于USB管道的內(nèi)部緩沖存儲器102的圖8中的第二緩沖存儲器區(qū)域142中(S108)。在完成對(用于1個分組的)所有數(shù)據(jù)的傳輸之后,CPU 120執(zhí)行處理以開始向外部硬盤119的BulkOUT傳輸 (S109)。USB主機控制器111向外部硬盤119發(fā)出BulkOUT傳輸請求,并且將存儲在第二緩 沖存儲器區(qū)域中的數(shù)據(jù)傳輸?shù)酵獠坑脖P119 (SllO)。外部硬盤119將在BulkOUT傳輸中接 收到的數(shù)據(jù)存儲在其中(Slll)。圖8是用于圖示當(dāng)數(shù)據(jù)被從USB存儲器118移到外部硬盤119時的數(shù)據(jù)流的圖。 如圖8中所示,經(jīng)由第一 USB管道控制塊104,將來自于USB存儲器118的數(shù)據(jù)存儲在用于 USB管道的緩沖存儲器102的第一緩沖存儲器區(qū)域141中(S101至S104)。接下來,將數(shù)據(jù) 從用于USB管道的緩沖存儲器102的第一緩沖存儲器區(qū)域141傳輸?shù)酱鎯ζ?21 (S106)。然后,為了將數(shù)據(jù)傳輸?shù)酵獠坑脖P119,被存儲在存儲器121中的數(shù)據(jù)被存儲在用 于USB管道的緩沖存儲器102的第二緩沖存儲器區(qū)域142中(S108)。然后,經(jīng)由第二 USB 管道控制塊105,將數(shù)據(jù)從用于USB管道的緩沖存儲器102的第二緩沖存儲器區(qū)域142傳輸 到外部硬盤119并且將其存儲在其中(S109至S111)。另外,日本專利申請公開No. 2004-46392公布了與USB主機控制電路有關(guān)的 技術(shù),該技術(shù)能夠改進傳輸效率同時保持CUP上的負(fù)載低。根據(jù)日本專利申請公開 No. 2004-46392的USB主機控制電路包括管道控制緩沖器、管道信息緩沖器、傳輸信息緩沖 器、管道選擇電路、以及協(xié)議引擎。在這里,根據(jù)被存儲在管道控制緩沖器和管道信息緩沖 器中的信息,管道選擇電路選擇用于執(zhí)行CPU和USB裝置之間的數(shù)據(jù)傳輸?shù)墓艿?。此外,?道選擇電路從協(xié)議引擎中獲取數(shù)據(jù)傳輸?shù)捻憫?yīng)結(jié)果,并且切換用于執(zhí)行數(shù)據(jù)傳輸?shù)墓艿溃?同時取決于響應(yīng)結(jié)果重新寫入被存儲在傳輸信息緩沖器中的信息。然而,當(dāng)通過使用圖5中所示的USB主機控制器111將數(shù)據(jù)從USB存儲器118傳 輸?shù)酵獠坑脖P119時,需要將數(shù)據(jù)暫時地存儲在存儲器121中。參考圖8,在上述示例中,第一 USB管道控制塊104被用于讀取來自于USB存儲器 118的數(shù)據(jù)(BulkIN),并且第二 USB管道控制塊105被用于將數(shù)據(jù)(BulkOUT)寫入外部硬 盤119。因此,當(dāng)通過使用圖5中所示的USB主機控制器111傳輸數(shù)據(jù)時,需要將被存儲在 用于USB管道的緩沖存儲器102的第一緩沖存儲器區(qū)域141中的數(shù)據(jù)傳輸?shù)狡涞牡诙彌_ 存儲器區(qū)域142。因此,為了通過使用圖5中所示的USB主機控制器111傳輸數(shù)據(jù),被存儲 在第一緩沖存儲器區(qū)域141中的數(shù)據(jù)經(jīng)由存儲器121被傳輸?shù)降诙彌_存儲器區(qū)域142。這樣,如果經(jīng)由位于USB主機控制器111的外部的存儲器121將數(shù)據(jù)從第一緩沖 存儲器區(qū)域141傳輸?shù)降诙彌_存儲器區(qū)域142,那么數(shù)據(jù)傳輸耗費時間。另外,由于在USB 主機控制器111和外部存儲器121之間的數(shù)據(jù)傳輸期間占據(jù)了總線,所以減少其它處理的 吞吐量。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的USB主機控制器包括緩沖存儲器,該緩沖存儲器具有第一緩沖存 儲器區(qū)域和第二緩沖存儲器區(qū)域;和緩沖存儲器控制器,該緩沖存儲器控制器被構(gòu)造為控 制第一裝置和緩沖存儲器之間的數(shù)據(jù)傳輸和第二裝置和緩沖存儲器之間的數(shù)據(jù)傳輸。緩沖 存儲器控制器保持與第一緩沖存儲器區(qū)域相對應(yīng)的地址信息和與第二緩沖存儲器區(qū)域相對應(yīng)的地址信息,將來自于第一裝置的數(shù)據(jù)存儲在第一緩沖存儲器區(qū)域中,將與第一緩沖 存儲器區(qū)域相對應(yīng)的地址信息和與第二緩沖存儲器區(qū)域相對應(yīng)的地址信息進行交換,并且 基于交換之后與第一緩沖存儲器區(qū)域相對應(yīng)的地址信息,將被存儲在第一緩沖存儲器區(qū)域 中的數(shù)據(jù)傳輸?shù)降诙b置。在根據(jù)本發(fā)明的USB主機控制器中,緩沖存儲器控制器將與第一緩沖存儲器區(qū)域 相對應(yīng)的地址信息和與第二緩沖存儲器區(qū)域相對應(yīng)的地址信息進行交換。這消除了對使用 位于USB主機控制器的外部的存儲器來執(zhí)行數(shù)據(jù)傳輸?shù)男枰瑥亩褂糜诖鎯ρb置之間的 數(shù)據(jù)傳輸?shù)臅r間減少。根據(jù)本發(fā)明的用于USB主機控制器的控制方法用于如下的控制器,該控制器包括緩沖存儲器,該緩沖存儲器具有第一緩沖存儲器區(qū)域和第二緩沖存儲器區(qū)域;以及緩 沖存儲器控制器,該緩沖存儲器控制器被構(gòu)造為控制第一裝置與緩沖存儲器之間的數(shù)據(jù)傳 輸以及第二裝置與緩沖存儲器之間的數(shù)據(jù)傳輸。該方法包括下述步驟將來自于第一裝置 的數(shù)據(jù)存儲在第一緩沖存儲器區(qū)域中;對由緩沖存儲器控制器保持的與第一緩沖存儲器區(qū) 域相對應(yīng)的地址信息和與第二緩沖存儲器區(qū)域相對應(yīng)的地址信息進行交換;以及基于交換 之后與第一緩沖存儲器區(qū)域相對應(yīng)的地址信息將被存儲在第一緩沖存儲器區(qū)域中的數(shù)據(jù) 傳輸?shù)降诙b置。根據(jù)本發(fā)明的用于USB主機控制器的控制方法對與第一緩沖存儲器區(qū)域相對應(yīng) 的地址信息和與第二緩沖存儲器區(qū)域相對應(yīng)的地址信息進行交換。這消除了經(jīng)由位于USB 主機控制器的外部的存儲器來對數(shù)據(jù)進行傳輸?shù)男枰瑥亩褂糜诖鎯ρb置之間的數(shù)據(jù)傳 輸?shù)臅r間減少。本發(fā)明能夠提供能夠為存儲裝置之間的數(shù)據(jù)傳輸減少時間的USB主機控制器和 用于USB主機控制器的控制方法。
圖1是示出根據(jù)實施例的USB主機控制器的圖。圖2是示出根據(jù)實施例的USB主機控制器的存儲器交換控制塊的圖。圖3是用于圖示根據(jù)實施例的通過使用USB主機控制器來對數(shù)據(jù)進行傳輸時的序 列的圖。圖4A和圖4B是每一個圖示了根據(jù)實施例的通過使用USB主機控制器來對數(shù)據(jù)進 行傳輸?shù)那闆r的圖。圖4A示出交換前的狀態(tài),并且圖4B示出交換后的狀態(tài)。圖5是示出根據(jù)現(xiàn)有技術(shù)的數(shù)據(jù)輸入/輸出裝置的圖。圖6是示出根據(jù)現(xiàn)有技術(shù)的USB主機控制器的圖。圖7是用于圖示根據(jù)現(xiàn)有技術(shù)的通過使用USB主機控制器來對數(shù)據(jù)進行傳輸?shù)那?況的序列的圖。圖8是用于圖示根據(jù)現(xiàn)有技術(shù)通過使用USB主機控制器來對數(shù)據(jù)進行傳輸?shù)那闆r 的圖。
具體實施例方式在下文中將參考附圖來描述本發(fā)明的實施例。
圖1示出根據(jù)實施例的USB主機控制器。根據(jù)實施例的USB主機控制器11包括 具有第一緩沖存儲器區(qū)域41 (參見圖4)和第二緩沖存儲器區(qū)域42 (參見圖4)的用于USB 管道的緩沖存儲器2 (緩沖存儲器);和緩沖存儲器控制器1,該緩沖存儲器控制器1被構(gòu)造 為對第一裝置18和用于USB管道的緩沖存儲器2之間的數(shù)據(jù)傳輸以及第二裝置19和用于 USB管道的緩沖存儲器2之間的數(shù)據(jù)傳輸進行控制。緩沖存儲器控制器1保持與第一緩沖存儲器區(qū)域41相對應(yīng)的地址信息和與第二 緩沖存儲器區(qū)域42相對應(yīng)的地址信息。另外,緩沖存儲器控制器1將來自于第一裝置18 的數(shù)據(jù)存儲在第一緩沖存儲器41中,然后對與第一緩沖存儲器區(qū)域41相對應(yīng)的地址信息 和與第二緩沖存儲器區(qū)域42相對應(yīng)的地址信息進行交換,并且基于在交換之后獲得的地 址信息,將被存儲在第一緩沖存儲器區(qū)域41中的數(shù)據(jù)傳輸?shù)降诙b置19,其中,所述地址 信息對應(yīng)于第一緩沖存儲器區(qū)域41。圖1中所示的USB主機控制器11的緩沖存儲器控制器1包括存儲器交換控制塊3和多個USB管道控制塊4、5、6。此外,USB主機控制器11包括用于USB管道的緩沖存儲器2 和CPU接口控制塊8。然后,存儲器交換控制塊3、多個USB管道控制塊4、5、6、用于USB管 道的緩沖存儲器2、以及CPU接口控制塊8經(jīng)由總線12被相互連接。CPU接口控制塊8具 有對來自于CPU的指令和到CPU的中斷信號進行控制的功能。另外,USB管道控制塊4、5、6被連接至USB接口控制塊7。而且,第一裝置18和第 二裝置19經(jīng)由第一端口 9和第二端口 10而分別被連接至USB接口控制塊7。在這點上,只 要裝置具有存儲信息的功能,第一裝置18和第二裝置19中的每一個可以是任何裝置。在 本實施例中,將會描述例如第一裝置18是USB存儲器并且第二裝置19是外部硬盤的情況。接下來,在下文中將會描述用于USB管道的緩沖存儲器2和緩沖存儲器控制器1 是如何操作的。緩沖存儲器控制器1不僅將來自于USB存儲器18的數(shù)據(jù)傳輸?shù)接糜赨SB 管道的緩沖存儲器2,而且將被存儲在用于USB管道的緩沖存儲器2的數(shù)據(jù)傳輸?shù)酵獠坑脖P 19。如圖4A中所示,用于USB管道的緩沖存儲器2包括多個緩沖存儲器區(qū)域。在這里, 將USB管道控制塊4、5、6分配到對應(yīng)的緩沖存儲器區(qū)域。例如,在圖4A中,第一 USB管道控制塊4被分配給第一緩沖存儲器區(qū)域41。在這 里,第一 USB管道控制塊4具有將數(shù)據(jù)從USB存儲器18傳輸?shù)降谝痪彌_存儲器區(qū)域41的 功能。這時,第一 USB管道控制塊4基于通過存儲器交換控制塊3寫入的基址信息和數(shù)據(jù) 大小,將數(shù)據(jù)傳輸?shù)降谝痪彌_存儲器區(qū)域41。在這點上,基址信息例如是第一緩沖存儲器區(qū) 域41處的起始點地址。通過使用起始點地址和數(shù)據(jù)大小信息能夠指定第一緩沖存儲器區(qū) 域41。類似地,第二 USB管道控制塊5被分配給第二緩沖存儲器區(qū)域42。在這里,第二 USB管道控制塊5具有將被存儲在第二緩沖存儲器區(qū)域42中的數(shù)據(jù)傳輸?shù)酵獠坑脖P19的 功能。這時,基于通過存儲器交換控制塊3寫入的基址信息和數(shù)據(jù)大小,第二 USB管道控制 塊5將被存儲在第二緩沖存儲器區(qū)域42中的數(shù)據(jù)傳輸?shù)酵獠坑脖P19。在圖4A中,來自于USB存儲器18的數(shù)據(jù)經(jīng)由第一 USB管道控制塊4被傳輸?shù)降?一緩沖存儲器區(qū)域41。然而,為了將數(shù)據(jù)傳輸?shù)酵獠坑脖P19,數(shù)據(jù)需要經(jīng)過第二 USB管道 控制塊5。因此,為了將被存儲在第一緩沖存儲器區(qū)域41中的數(shù)據(jù)傳輸?shù)酵獠坑脖P19,被存儲在第一緩沖存儲器區(qū)域41中的數(shù)據(jù)需要被移到第二緩沖存儲器區(qū)域42。為了解決此 問題,在現(xiàn)有技術(shù)中提供了外部存儲器,以將被存儲在第一緩沖存儲器區(qū)域41中的數(shù)據(jù)移 到第二緩沖存儲器區(qū)域42。然而,因為使用外部存儲器需要進行從第一緩沖存儲器區(qū)域41 到外部存儲器的數(shù)據(jù)傳輸和進行從外部存儲器到第二緩沖存儲器區(qū)域42的數(shù)據(jù)傳輸,所 以使用外部存儲器的數(shù)據(jù)移動需要花費時間。另外,這引起下述問題,因為在USB主機控制 器11和外部存儲器之間的數(shù)據(jù)傳輸期間占據(jù)了總線,所以用于其它處理的吞吐量被減少。 另外,需要單獨地提供處于USB主機控制器11的外部的存儲器。在本實施例中,通過使用存儲器交換控制塊3以重新寫入由第一 USB管道控制塊4 和第二 USB管道控制塊5保持的地址信息(基址信息和數(shù)據(jù)大小信息)來解決上述問題。 在下文中將會描述存儲器交換控制塊3重寫USB管道控制塊的地址信息的情況。圖2是示出存儲器交換控制塊3的圖。存儲器交換控制塊3包括CUP總線接口控 制塊21、交換源管道號(number)寄存器22、交換目的地管道號寄存器23、以及交換開始使 能寄存器24,它們經(jīng)由總線32被相互連接。CPU總線接口控制塊21具有對來自于CPU的 指令進行控制的功能。交換源管道號寄存器22對交換源USB管道控制塊的管道號進行存儲。復(fù)用器25 獲取來自于交換源管道號寄存器22的交換源管道號,根據(jù)管道號選擇USB管道控制塊的基 址信息,并且將基址信息傳輸?shù)浇粨Q目的地USB管道控制塊的存儲器基址保持電路。類似地,復(fù)用器26獲取來自于交換源管道號寄存器22的交換源管道號,根據(jù)管道 號來選擇USB管道控制塊的數(shù)據(jù)大小信息,并且將數(shù)據(jù)大小信息傳輸?shù)浇粨Q目的地USB管 道控制塊的數(shù)據(jù)大小保持電路。另外,交換目的地管道號寄存器23對交換目的地USB管道控制塊的管道號進行存 儲。復(fù)用器27獲取來自于交換目的地管道號寄存器23的交換目的地管道號,根據(jù)管道號 來選擇USB管道控制塊的基址信息,并且將基址信息傳輸?shù)浇粨Q源USB管道控制塊的存儲 器基址保持電路。類似地,復(fù)用器28獲取來自于交換目的地管道號寄存器23的交換目的地管道號, 根據(jù)管道號來選擇USB管道控制塊的數(shù)據(jù)大小信息,并且將數(shù)據(jù)大小信息傳輸?shù)浇粨Q源 USB管道控制塊的數(shù)據(jù)大小保持電路?;趤碜杂贑PU的指令,管道號被寫入到交換源管道號寄存器22和交換目的地管 道號寄存器23。當(dāng)管道號被寫入交換源管道號寄存器22和交換目的地管道號寄存器23時,交換 起始使能寄存器24被設(shè)置,并且指示交換起始使能寄存器24已經(jīng)被設(shè)置的信號被傳輸?shù)?交換時序信號生成電路30。復(fù)用器29基于被存儲在交換目的地管道號寄存器23中的管道 號來選擇交換目的地緩沖狀態(tài)信息,并且將該信息傳輸?shù)浇粨Q時序信號生成電路30。在這 點上,交換目的地緩沖狀態(tài)信息是指示交換目的地緩沖存儲器區(qū)域是否為空的信息。如果 交換目的地緩沖存儲器區(qū)域不是空的,那么交換時序信號生成電路30懸掛交換操作的開 始,并且等待直到交換目的地緩沖存儲器區(qū)域變成空的。如果交換目的地緩沖存儲器區(qū)域 是空的,那么交換時序信號生成電路30將交換時序信號傳輸?shù)浇粨Q起始信號生成電路31。交換起始信號生成電路31獲取來自于交換源管道號寄存器22的交換源管道號, 和來自于交換目的地管道號寄存器23的交換目的地管道號。在接收來自于交換時序信號生成電路30的交換時序信號之后,交換起始信號生成電路31將交換起始信號傳輸?shù)浇粨Q 源USB管道控制塊和交換目的地USB管道控制塊中的每一個。在接收交換起始信號之后, 交換源USB管道控制塊和交換目的地USB管道控制塊對于當(dāng)前保持的基址信息和數(shù)據(jù)大小 信息上重寫由各自的復(fù)用器25、26、27、28選擇的基址信息和數(shù)據(jù)大小信息。在下文中,將會參考圖3描述通過使用根據(jù)本實施例的USB主機控制器11將數(shù)據(jù) 從USB存儲器18傳輸?shù)酵獠坑脖P19的情況。在這里,假定第一 USB管道控制塊4用于讀取 來自于USB存儲器18的數(shù)據(jù)(BulkIN),并且第二 USB管道控制塊5用于將數(shù)據(jù)(BulkOUT) 寫入外部硬盤19。另外,例如,假定USB主機控制器11被構(gòu)建在如圖5中所示的數(shù)據(jù)輸入 /輸出裝置122中。此外,圖4A示出交換之前第一 USB管道控制塊4和第二 USB管道控制 塊5的狀態(tài),并且圖4B示出交換之后第一 USB管道控制塊4和第二 USB管道控制塊5的狀 態(tài)。接下來,將會適當(dāng)?shù)厥褂脠D1、圖2以及圖4來進行描述。首先,為了從USB存儲器18中讀取要被復(fù)制到圖1的外部硬盤19的數(shù)據(jù),CPU執(zhí) 行處理以使USB主機控制器11發(fā)出BulkIN傳輸請求(Si)。然后,通過向USB存儲器18發(fā) 出BulkIn傳輸請求,USB主機控制器11請求數(shù)據(jù)(S2)。響應(yīng)于BulkIn請求,USB存儲器18將數(shù)據(jù)傳輸?shù)経SB主機控制器11 (S3)。USB主 機控制器11將從USB存儲器接收到的數(shù)據(jù)存儲在用于USB管道的緩沖存儲器2的第一緩 沖存儲器區(qū)域41 (參見圖4)中(S4)。
然后,在將來自于USB存儲器的所有數(shù)據(jù)存儲在用于USB管道的緩沖存儲器2之 后,USB主機控制器11通知CPU中斷請求(S5)。為了交換存儲器,已經(jīng)檢測到中斷請求的 CPU設(shè)置圖2中所示的存儲器交換控制塊的交換源管道號寄存器22中的已經(jīng)接收到來自于 USB存儲器的數(shù)據(jù)的管道號(在本實施例的示例中為Ih)。另外,CPU設(shè)置交換目的地管道 號寄存器23中的將數(shù)據(jù)傳輸?shù)酵獠坑脖P19的管道號(在本實施例的示例中為2h)。圖2中所示的復(fù)用器25獲取來自于交換源管道號寄存器22的交換源管道號 (Ih),根據(jù)管道號選擇第一 USB管道控制塊4的基址信息(OlOh),并且將該基址信息傳輸?shù)?交換目的地第二 USB管道控制塊5的基址保持電路。類似地,復(fù)用器26獲取來自于交換源管道號寄存器22的交換源管道號(Ih),根據(jù) 管道號選擇第一 USB管道控制塊4的數(shù)據(jù)大小信息(200h),并且將該數(shù)據(jù)大小信息傳輸?shù)?交換目的地第二 USB管道控制塊5的數(shù)據(jù)大小保持電路。復(fù)用器27獲取來自于交換目的地管道號寄存器23的交換目的地管道號(2h),根 據(jù)管道號選擇第二 USB管道控制塊5的基址信息(410h),并且將該基址信息傳輸?shù)浇粨Q源 第一 USB管道控制塊4的基址保持電路。類似地,復(fù)用器28獲取來自于交換目的地管道號寄存器23的交換目的地管道號 (2h),根據(jù)管道號選擇第二 USB管道控制塊5的數(shù)據(jù)大小信息(OOOh),并且將該數(shù)據(jù)大小信 息傳輸?shù)浇粨Q源的第一 USB管道控制塊4的數(shù)據(jù)大小保持電路。當(dāng)管道號被寫入圖2中所示的交換源管道號寄存器22和交換目的地管道號寄存 器23時,交換起始使能寄存器24被設(shè)置,并且指示交換起始使能寄存器24已經(jīng)被設(shè)置的 信號被傳輸?shù)浇粨Q時序信號生成電路30。復(fù)用器29基于被存儲在交換目的地管道號寄存 器23中的管道號(2h)來選擇交換目的地緩沖狀態(tài)信息,并且將該信息傳輸?shù)浇粨Q時序信 號生成電路30。
如果作為交換目的地緩沖存儲區(qū)域的第二緩沖存儲器區(qū)域42不是空的,那么交換時序信號生成電路30懸掛交換操作的開始,并且等待直到第二緩沖存儲器區(qū)域42變成 空的。如果第二緩沖存儲器區(qū)域42是空的,那么交換時序信號生成電路30將交換時序信 號傳輸?shù)浇粨Q起始信號生成電路31。當(dāng)交換起始信號生成電路31獲取交換源管道號(Ih)和交換目的地管道號(2h), 并且接收來自于交換時序信號生成電路30的交換時序信號時,交換起始信號生成電路31 將交換起始信號傳輸?shù)浇粨Q源第一 USB管道控制塊4和交換目的地第二 USB管道控制塊5 中的每一個(S6)。在接收交換起始信號之后,交換源第一 USB管道控制塊4和交換目的地第二 USB 管道控制塊5執(zhí)行將它們當(dāng)前保持的基址信息和數(shù)據(jù)大小信息替換為通過各自的復(fù)用器 25、26、27、28選擇的基址信息和數(shù)據(jù)大小信息的存儲器交換處理(S7)。將參考圖4來描述S7的操作。在執(zhí)行交換之前,第一 USB管道控制塊4的基址信 息是010h,第一 USB管道控制塊4的數(shù)據(jù)大小信息是200h,第二 USB管道控制塊5的基址是 410h,并且第二 USB管道控制塊5的數(shù)據(jù)大小是000h。然后,執(zhí)行交換處理之后,第一 USB 管道控制塊4的基址信息是410h并且第一 USB管道控制塊4的數(shù)據(jù)大小信息是000h。另 夕卜,第二 USB管道控制塊5的基址是010h,并且第二 USB管道控制塊5的數(shù)據(jù)大小是200h。換言之,作為上述交換處理的結(jié)果,因為第二 USB管道控制塊5的數(shù)據(jù)大小信息和 基址信息變得對應(yīng)于第一緩沖存儲器區(qū)域41中的信息,所以第二 USB管道控制塊5能夠讀 取被存儲在第一緩沖存儲器區(qū)域41中的數(shù)據(jù)。應(yīng)注意的是,盡管在圖4中使用了基址信息和數(shù)據(jù)大小信息,作為USB管道控制塊 的地址信息,但是,只要信息能夠識別緩沖存儲器區(qū)域,就可以使用該任何信息。例如,緩沖 存儲器區(qū)域的起始點地址和結(jié)束點地址可以被用作地址信息。然后,在上述交換處理之后,USB主機控制器11向CPU發(fā)出中斷請求以通知CPU完 成了交換(S8)。在接收來自于USB主機控制器11的交換完成通知之后,CPU執(zhí)行處理以開 始對外部硬盤19的BulkOUT傳輸(S9)。USB主機控制器11向外部硬盤19發(fā)出BulkOUT傳輸請求,并且將被存儲在第一緩 沖存儲器區(qū)域中的數(shù)據(jù)傳輸?shù)酵獠坑脖P19 (SlO)。外部硬盤19將在BulkOUT傳輸中接收到 的數(shù)據(jù)存儲在硬盤中(Sll)。在根據(jù)本實施例的USB主機控制器11中,存儲器交換控制塊3對被存儲在第一 USB管道控制塊4中的并且與第一緩沖存儲器區(qū)域41相對應(yīng)的地址信息和被存儲在第二 USB管道控制塊5中的并且與第二緩沖存儲器區(qū)域42相對應(yīng)的地址信息進行交換。這消除 了通過使用位于USB主機控制器11的外部的存儲器來傳輸數(shù)據(jù)的需要,從而能夠為存儲裝 置之間的數(shù)據(jù)傳輸減少時間。這還消除單獨地提供在USB主機控制器11外部的存儲器的 需要。根據(jù)本實施例的用于USB主機控制器的控制方法具有下述步驟。在這里,USB主 機控制器包括緩沖存儲器(用于USB管道的緩沖存儲器),該緩沖存儲器具有第一緩沖存 儲器區(qū)域和第二緩沖存儲器區(qū)域;和緩沖存儲器控制器,該緩沖存儲器控制器被構(gòu)造為控 制在第一裝置和緩沖存儲器之間的數(shù)據(jù)傳輸和在第二裝置和緩沖存儲器之間的數(shù)據(jù)傳輸。 所述步驟包括
將來自于第一裝置的數(shù)據(jù)存儲在第一緩沖存儲器區(qū)域的步驟;對通過緩沖存儲器控制器保持的與第一緩沖存儲器區(qū)域相對應(yīng)的地址信息和與 第二緩沖存儲器區(qū)域相對應(yīng)的地址信息進行交換的步驟;以及基于在交換之后獲得的地址信息,將被存儲在第一緩沖存儲器區(qū)域中的數(shù)據(jù)傳輸 到第二裝置的步驟,其中,所述地址信息對應(yīng)于第一緩沖存儲器區(qū)域。而且,在根據(jù)本發(fā)明的用于USB主機控制器的控制方法中,與第一緩沖存儲器區(qū) 域相對應(yīng)的地址信息和與第二緩沖存儲器區(qū)域相對應(yīng)的地址信息被交換。這消除了經(jīng)由處 于USB主機控制器外部的存儲器來進行數(shù)據(jù)傳輸?shù)男枰?,從而能夠為存儲裝置之間的數(shù)據(jù) 傳輸減少時間。因此,根據(jù)本實施例的本發(fā)明能夠提供能夠為存儲裝置之間的數(shù)據(jù)傳輸減少時間 的USB主機控制器,和用于USB主機控制器的控制方法。顯然的是,本發(fā)明不限于上述實施例,而是可以在不脫離本發(fā)明的范圍和精神的 情況下進行修改和變化。
權(quán)利要求
一種USB主機控制器,包括緩沖存儲器,所述緩沖存儲器具有第一緩沖存儲器區(qū)域和第二緩沖存儲器區(qū)域;和緩沖存儲器控制器,所述緩沖存儲器控制器被構(gòu)造為控制第一裝置和所述緩沖存儲器之間的數(shù)據(jù)傳輸以及第二裝置和所述緩沖存儲器之間的數(shù)據(jù)傳輸,其中所述緩沖存儲器控制器保持與所述第一緩沖存儲器區(qū)域相對應(yīng)的地址信息和與所述第二緩沖存儲器區(qū)域相對應(yīng)的地址信息,將來自于所述第一裝置的數(shù)據(jù)存儲在所述第一緩沖存儲器區(qū)域中,對與所述第一緩沖存儲器區(qū)域相對應(yīng)的地址信息和與所述第二緩沖存儲器區(qū)域相對應(yīng)的地址信息進行交換,以及基于在所述交換之后與所述第一緩沖存儲器區(qū)域相對應(yīng)的地址信息,將被存儲在所述第一緩沖存儲器區(qū)域中的數(shù)據(jù)傳輸?shù)剿龅诙b置。
2.根據(jù)權(quán)利要求1所述的USB主機控制器,其中所述緩沖存儲器控制器具有多個USB管道控制塊,所述多個USB管道控制塊中的每一 個存儲所述地址信息并且基于所述地址信息傳輸數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的USB主機控制器,其中所述緩沖存儲器控制器包括第一 USB管道控制塊、第二 USB管道控制塊、以及存儲器交 換控制塊,所述存儲器交換控制塊用于對所述第一 USB管道控制塊的地址信息和所述第二 USB管道控制塊的地址信息進行交換,所述第一 USB管道控制塊保持與所述第一緩沖存儲器區(qū)域相對應(yīng)的地址信息,并且將 來自于所述第一裝置的數(shù)據(jù)存儲在所述第一緩沖存儲器區(qū)域中,所述第二 USB管道控制塊保持與所述第二緩沖存儲器區(qū)域相對應(yīng)的地址信息, 在所述第一 USB管道控制塊將來自于所述第一裝置的數(shù)據(jù)存儲在所述第一緩沖存儲 器區(qū)域中之后,所述存儲器交換控制塊對由所述第一 USB管道控制塊保持的與所述第一緩 沖存儲器區(qū)域相對應(yīng)的地址信息和由所述第二 USB管道控制塊保持的與所述第二緩沖存 儲器區(qū)域相對應(yīng)的地址信息進行交換,并且從而使所述第二 USB管道控制塊保持與所述第 一緩沖存儲器區(qū)域相對應(yīng)的地址信息,并且所述第二 USB管道控制塊將被存儲在所述第一緩沖存儲器區(qū)域中的數(shù)據(jù)傳輸?shù)剿?第二裝置。
4.根據(jù)權(quán)利要求1所述的USB主機控制器,其中,與所述第一和第二緩沖存儲器區(qū)域中 的每一個相對應(yīng)的地址信息包括所述第一和第二緩沖存儲器區(qū)域中的每一個的地址信息 和被存儲在所述第一和第二緩沖存儲器區(qū)域中的每一個中的數(shù)據(jù)的大小。
5.根據(jù)權(quán)利要求1所述的USB主機控制器,其中,與所述第一和第二緩沖存儲器區(qū)域中 的每一個相對應(yīng)的地址信息包括所述第一和第二緩沖存儲器區(qū)域中的每一個的起始點地 址和被存儲在所述第一和第二緩沖存儲器區(qū)域中的每一個中的數(shù)據(jù)的大小。
6.根據(jù)權(quán)利要求1至3中的任何一項所述的USB主機控制器,其中,與所述第一和第二 緩沖存儲器區(qū)域中的每一個相對應(yīng)的地址信息包括所述第一和第二緩沖存儲器區(qū)域中的 每一個的起始點地址和結(jié)束點地址。
7.根據(jù)權(quán)利要求1所述的USB主機控制器,其中,在所述第二緩沖存儲器區(qū)域變?yōu)榭罩?,所述緩沖存儲器控制器對與所述第一緩沖存儲器區(qū)域相對應(yīng)的地址信息和與所述第二 緩沖存儲器區(qū)域相對應(yīng)的地址信息進行交換。
8. 一種用于USB主機控制器的控制方法,所述控制器包括 緩沖存儲器,所述緩沖存儲器具有第一緩沖存儲器區(qū)域和第二緩沖存儲器區(qū)域;和 緩沖存儲器控制器,所述緩沖存儲器控制器被構(gòu)造為控制第一裝置與所述緩沖存儲器 之間的數(shù)據(jù)傳輸以及第二裝置與所述緩沖存儲器之間的數(shù)據(jù)傳輸, 所述方法包括下述步驟將來自于所述第一裝置的數(shù)據(jù)存儲在所述第一緩沖存儲器區(qū)域中; 對由所述緩沖存儲器控制器保持的與所述第一緩沖存儲器區(qū)域相對應(yīng)的地址信息和 與所述第二緩沖存儲器區(qū)域相對應(yīng)的地址信息進行交換;以及基于在所述交換之后與所述第一緩沖存儲器區(qū)域相對應(yīng)的地址信息,將被存儲在所述 第一緩沖存儲器區(qū)域中的數(shù)據(jù)傳輸?shù)剿龅诙b置。
全文摘要
本發(fā)明旨在提供一種能夠為存儲裝置之間的數(shù)據(jù)傳輸減少時間的USB主機控制器和用于USB主機控制器的控制方法。根據(jù)本發(fā)明的USB主機控制器包括用于USB管道的緩沖存儲器,該緩沖存儲器具有第一緩沖存儲器區(qū)域和第二緩沖存儲器區(qū)域;和緩沖存儲器控制器,該緩沖存儲器控制器被構(gòu)造為控制用于USB管道的緩沖存儲器與第一和第二裝置中的每一個之間的數(shù)據(jù)傳輸。緩沖存儲器控制器將來自于第一裝置的數(shù)據(jù)存儲在第一緩沖存儲器區(qū)域中,對與第一緩沖存儲器區(qū)域相對應(yīng)的地址信息和與第二緩沖存儲器區(qū)域相對應(yīng)的地址信息進行交換,并且基于在交換之后與第一緩沖存儲器區(qū)域相對應(yīng)的地址信息,將被存儲在第一緩沖存儲器區(qū)域中的數(shù)據(jù)傳輸?shù)降诙b置。
文檔編號G06F3/06GK101814011SQ20101012667
公開日2010年8月25日 申請日期2010年2月24日 優(yōu)先權(quán)日2009年2月24日
發(fā)明者近藤邦裕 申請人:恩益禧電子股份有限公司