專利名稱:用于高效數(shù)據(jù)處理的裝置和方法
技術領域:
概括地說,本發(fā)明涉及數(shù)據(jù)處理,具體地說,涉及用于在通信系統(tǒng)中較高效地利用硬件處理數(shù)據(jù)的技術。
背景技術:
一般而言,通信系統(tǒng)中的數(shù)據(jù)處理功能使用軟件來實現(xiàn)多種任務。這類軟件通常為特定硬件操作提供信息。因此,軟件和硬件之間必須密切交互,因此在一些實例中,需要分多步實施特定任務。對軟件的依賴性帶來大量弊端,包括增加了延時、浪費帶寬、增加系統(tǒng)微處理器上的處理負載等等。于是,需要較高效的用于處理數(shù)據(jù)的方法來對現(xiàn)有范例所導致的弊端加以改進或消除,其中,需要硬件和提供絕大多數(shù)用于控制該硬件的信息的軟件之間密切交互。
發(fā)明內(nèi)容
為了對一個或多個方面有一個基本的理解,下面給出了這些方面的簡單概括。該概括部分不是對所有預期方面的詳盡概述,其既不是要確定所有方面的關鍵或重要組成元素也不是描繪任何或所有方面的保護范圍。其唯一目的是用簡單的形式呈現(xiàn)一個或多個方面的一些概念,以此作為后面的詳細說明的前奏。根據(jù)一些方面,一種數(shù)據(jù)處理方法包括由第一硬件組件接收用于執(zhí)行第一任務集的指令,其中所述第一硬件組件具有與其相關聯(lián)的第一任務隊列;由第二硬件組件接收用于執(zhí)行第二任務集的指令,其中所述第二硬件具有與其相關聯(lián)的第二任務隊列;在所述第一硬件組件處接收觸發(fā)消息以執(zhí)行所述第一任務集;在完成所述第一任務集之后,由所述第一硬件組件向所述第二硬件組件發(fā)送觸發(fā)消息,以執(zhí)行所述第二任務集。根據(jù)一些方面,一種數(shù)據(jù)處理裝置包括處理器;第一存儲器;第二存儲器;具有與其相關聯(lián)的第一任務隊列的第一硬件組件;具有與其相關聯(lián)的第二任務隊列的第二硬件組件,其中,將多個任務預先存儲在所述第一任務隊列中,將多個第二任務預先存儲在所述第二任務隊列中,所述第一硬件組件用于接收觸發(fā)以便開始執(zhí)行所述多個第一任務,并向所述第二硬件組件發(fā)出觸發(fā)以便開始執(zhí)行所述多個第二任務。為了實現(xiàn)前述和有關的目的,一個或多個方面包括下文所完全描述和權利要求書中具體指出的特征。下文描述和附圖詳細描述了一個或多個方面的某些示例性特征。但是, 這些特征僅僅說明可采用這些各個方面之基本原理的各種方法中的一些方法,并且該描述旨在包括所有這些方面及其等同物。
下面將結合附圖描述所公開的方面,所述附圖提供對所公開的方面的解釋說明而并不是限制這些方面,其中,相同的標號表示相同的元件,其中圖1描述了根據(jù)各個公開的方面的無線通信系統(tǒng);
圖2描述了根據(jù)各個公開的方面的用戶設備和節(jié)點B ;圖3描述了根據(jù)各個公開的方面的接收機;圖4中的數(shù)據(jù)流圖描述了根據(jù)各個公開的方面的數(shù)據(jù)處理操作過程;圖5是根據(jù)各個公開的方面的簡化的系統(tǒng)示意圖;圖6中的數(shù)據(jù)流圖描述了根據(jù)各個公開的方面的數(shù)據(jù)處理操作過程;圖7是描述了根據(jù)各個公開的方面的數(shù)據(jù)處理操作過程的流程圖;圖8是描述了根據(jù)各個公開的方面的門限處理操作過程的流程圖;圖9是描述了根據(jù)各個公開的方面,實現(xiàn)模板化處理的系統(tǒng)圖;圖10是描述了根據(jù)各個公開的方面,實現(xiàn)多個存儲池的系統(tǒng)圖;圖11描述了根據(jù)各個公開的方面的協(xié)議數(shù)據(jù)單元存儲;圖12是描述了根據(jù)各個公開的方面,解釋說明數(shù)據(jù)處理和存儲的簡化框圖;圖13是描述了典型無線設備的框圖;圖14是描述了根據(jù)各個公開的方面的示例性無線設備的框圖;圖15是根據(jù)各個公開的方面,實現(xiàn)小型處理器的簡化框圖;圖16是描述了根據(jù)各個公開的方面的利用小型處理器的處理數(shù)據(jù)方法的流程圖;圖17是根據(jù)各個公開的方面,實現(xiàn)拷貝引擎的框圖;圖18描述了根據(jù)各個公開的方面的示例性數(shù)據(jù)幀。
具體實施例方式現(xiàn)在參照附圖描述各個方面。在下面的描述中,為便于解釋,給出了大量具體細節(jié),以便提供對一個或多個方面的全面理解。然而,很明顯,也可以不用這些具體細節(jié)來實現(xiàn)這些方面。如本申請中所用的,術語“組件”、“模塊”、“系統(tǒng)”等意在包括與計算機相關的實體,例如但并不僅限于硬件、固件、硬件和軟件的組合、軟件或執(zhí)行中的軟件。舉例而言,組件可以是但并不限于是處理器上運行的進程、處理器、對象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計算機。作為舉例說明,計算設備上運行的應用和計算設備都可以是組件。一個或多個組件可以位于執(zhí)行中的進程和/或線程中,組件可以位于一個計算機中和/或分布于兩個或多個計算機中。另外,這些組件可以從其上存儲有各種數(shù)據(jù)結構的各種計算機可讀介質中執(zhí)行。這些組件可以諸如依照包含一個或多個數(shù)據(jù)分組的信號的方式通過本地和 /或遠程進程進行通信(例如,來自一個組件的數(shù)據(jù),該組件以信號的方式與本地系統(tǒng)、分布式系統(tǒng)和/或通過諸如互聯(lián)網(wǎng)之類的網(wǎng)絡與其它系統(tǒng)中的另一個組件進行交互)。此外,本申請中結合終端描述了各個方面,該終端可以是有線終端或無線終端。終端還可以叫做系統(tǒng)、設備、用戶單元、用戶站、移動站、移動臺、移動設備、遠方站、遠程終端、 接入終端、用戶終端、終端、通信設備、用戶代理、用戶裝置或用戶設備(UE)。無線終端可以是蜂窩電話、衛(wèi)星電話、無繩電話、會話發(fā)起協(xié)議(SIP)電話、無線本地環(huán)路(WLL)站、個人數(shù)字助理(PDA)、具有無線連接能力的手持式設備、計算設備或其它與無線調(diào)制解調(diào)器連接的處理設備。此外,本申請中結合基站描述了各個方面?;究梢杂糜谂c無線終端通信,并且也可以稱為接入點、節(jié)點B或一些其它術語。
此外,術語“或”意為包含性的“或”而不是排除性的“或”。也就是說,除非另有說明或從上下文中明確得知,否則用語“X采用A或B”意為任何的自然的包含性排列。也就是說,下面情況中的任何一個都滿足用語“X采用A或B”,即X采用A ;X采用B ;或X采用 A且B。另外,本申請中和所附權利要求中所用的冠詞“一”和“一個”,除非另有說明或從上下文中明確指出為單數(shù)形式,否則一般解釋為“一個或多個”。本申請描述的技術可以用于各種無線通信系統(tǒng),例如⑶MA、TDMA, FDMA, OFDMA, SC-FDMA和其它系統(tǒng)。術語“系統(tǒng)”和“網(wǎng)絡”通?;Q使用。CDMA系統(tǒng)可以實現(xiàn)例如通用陸地無線接入(UTRA)、cdma2000等之類的無線技術。UTRA包括寬帶-CDMA(W-CDMA)和CDMA 的其它變體。此外,cdma2000涵蓋IS-2000、IS-95和IS-856標準。TDMA系統(tǒng)可以實現(xiàn)諸如全球移動通信系統(tǒng)(GSM)之類的無線技術。OFDMA系統(tǒng)可以實現(xiàn)例如演進UTRA(E-UTRA)、 超移動寬帶(UMB)、IEEE 802. Il(Wi-Fi)、IEEE 802. 16 (WiMAX)、IEEE 802. 20、Flash-OFDM 等之類的無線技術。UTRA和E-UTRA是全球移動電信系統(tǒng)(UMTQ的一部分。3GPP長期演進(LTE)是使用E-UTRA的UMTS的版本,其在下行鏈路上采用OFDMA而在上行鏈路上采用 SC-FDMA0 UTRA、E-UTRA、UMTS、LTE和GSM在來自名為“第三代合作伙伴計劃”(3GPP)的組織的文件中進行了描述。另外,cdma 2000和UMB在來自名為“第三代合作伙伴計劃2”(3GPP2) 的組織的文件中進行了描述。此外,這些無線通信系統(tǒng)還可以包括通常使用不成對的未經(jīng)許可的頻譜的對等(例如,移動臺對移動臺)自組(ad hoc)網(wǎng)絡系統(tǒng)、802. XX無線LAN、藍牙和任何其它短距離或長距離的無線通信技術。下面將圍繞包括多個設備、組件、模塊等的系統(tǒng)來表現(xiàn)各個方面或特征。應該理解和意識到,各種系統(tǒng)可以包括另外的設備、組件、模塊等,和/或不包括結合附圖而討論的所有設備、組件、模塊等。這些方法的組合也是可以使用的。圖1示出了無線通信系統(tǒng)100,其包括(i)無線接入網(wǎng)(RAN) 120,其支持用戶設備(UE)的無線通信;以及(ii)網(wǎng)絡實體,其執(zhí)行用以支持通信服務的各種功能。RAN 120 可以包括任何數(shù)量的節(jié)點B以及任何數(shù)量的無線網(wǎng)絡控制器(RNC)。為了簡單起見,圖1中只示出一個節(jié)點B 130和一個RNC 132。節(jié)點B—般是與UE通信的固定站,且還可以稱為演進節(jié)點B、基站、接入點等等。RNC 132連接到一組節(jié)點B,并為其控制下的節(jié)點B提供協(xié)調(diào)和控制。網(wǎng)絡協(xié)議(IP)網(wǎng)關140支持UE的數(shù)據(jù)服務,并且也可以稱為服務GPRS支持節(jié)點或網(wǎng)關GPRS支持節(jié)點(SGSN或GGSN)、接入網(wǎng)關(AGW)、分組數(shù)據(jù)服務節(jié)點(PDSN)等。IP 網(wǎng)關140負責為UE建立、維護和終止數(shù)據(jù)會話,并且可以進一步為UE分配動態(tài)IP地址。IP 網(wǎng)關140連接到數(shù)據(jù)網(wǎng)150,該數(shù)據(jù)網(wǎng)150可以包括核心網(wǎng)、因特網(wǎng)等等。IP網(wǎng)關140能夠通過數(shù)據(jù)網(wǎng)150與諸如服務器160之類的各種實體通信。無線系統(tǒng)100可以包括圖1中未示出的其它網(wǎng)絡實體。UE 110可以與RAN 120通信以便與其它實體(例如服務器160)交換數(shù)據(jù)。UE 110 可以是固定的或移動的,且還可以稱為移動站、終端、用戶單元、站等等。UE 110可以是蜂窩電話、個人數(shù)字助理(PDA)、無線通信設備、無線調(diào)制解調(diào)器、手持設備、膝上型計算機等等。 UE 110通過空中接口(例如下行鏈路和上行鏈路)與節(jié)點B 120通信。下行鏈路(或前向鏈路)指的是從節(jié)點B到UE的通信鏈路,反向鏈路(或上行鏈路)指的是從UE到節(jié)點 B的通信鏈路。本申請中所描述的技術可以用于下行鏈路和上行鏈路上的數(shù)據(jù)傳輸。
在一些方面,UE 110可以通過有線連接(如圖1中所示)或無線連接與終端裝置 (TE)設備112連接。UE 110可以用于提供或支持TE設備112的無線數(shù)據(jù)服務。TE設備 112可以是膝上型計算機、PDA或一些其它的計算設備。圖2示出了圖1中的UE 110和節(jié)點B 130的示例性設計的框圖。在這個示例性設計中,UE 110包括數(shù)據(jù)處理器210、外部存儲器沈0、無線發(fā)射機(TMTR) 252、無線接收機 (RCVR) 254。數(shù)據(jù)處理器210包括控制器/處理器220、發(fā)射處理器230、接收處理器MO以及內(nèi)部存儲器250??偩€212有助于處理器220、230和240和存儲器250之間的數(shù)據(jù)傳送。 數(shù)據(jù)處理器210可以實現(xiàn)在專用集成電路(ASIC)上,存儲器260可以在該ASIC的外部。對于上行鏈路上的數(shù)據(jù)發(fā)送,發(fā)射處理器230根據(jù)一組協(xié)議處理業(yè)務數(shù)據(jù)并提供輸出數(shù)據(jù)。無線發(fā)射機252可以調(diào)整(例如,轉換為模擬、過濾、放大和上變頻)輸出數(shù)據(jù)并生成上行鏈路信號,該上行鏈路信號可以發(fā)射給節(jié)點B 230。對于下行鏈路上的數(shù)據(jù)接收, 無線接收機邪4可以調(diào)整(例如,過濾、放大、下變頻和數(shù)字化)從節(jié)點B 230接收到的下行鏈路信號并提供接收數(shù)據(jù)。接收處理器240根據(jù)一組協(xié)議處理所接收到的數(shù)據(jù)并提供業(yè)務數(shù)據(jù)??刂破?處理器220可以指導UE 110處的各個單元的操作。內(nèi)部存儲器250可以存儲處理器220、230和MO的程序代碼和數(shù)據(jù)。外部存儲器沈0為用于UE 110的數(shù)據(jù)和程序代碼提供大容量存儲。圖2還示出了節(jié)點B 130的示例性設計的框圖。無線發(fā)射機/接收機264可以支持與UE 110和其它UE的無線通信。控制器/處理器270可以處理用于針對下行鏈路上的數(shù)據(jù)發(fā)送和上行鏈路上的數(shù)據(jù)接收的數(shù)據(jù)??刂破?處理器270還可以執(zhí)行用于與UE的通信的各種功能。存儲器272可以存儲節(jié)點B 130的數(shù)據(jù)和程序代碼。通信(Comm)單元 274可以支持與其它網(wǎng)絡實體的通信。圖3描述了接收機300的示例性設計,該接收機可以是UE 110的一部分。接收機 300包括外部存儲器310,其用于提供數(shù)據(jù)的大容量存儲;接收處理器320,其用于處理接收到的數(shù)據(jù);以及內(nèi)部存儲器340,其用于存儲處理后的數(shù)據(jù)。接收處理器320和內(nèi)部存儲器340可以實現(xiàn)在ASIC 312上。在接收處理器320內(nèi),RX PHY處理器322可以從發(fā)射機(例如,節(jié)點B 130)接收 PHY幀,根據(jù)由RAN使用的無線技術(例如,CDMA 20001X或IxEV-DO或LTE)來處理接收到的PHY幀,并提供接收到的幀。數(shù)據(jù)處理器3M進一步處理(例如,解碼、譯碼以及解幀 (de-frame))所接收到的幀。數(shù)據(jù)傳遞通常包括三個任務。第一,從一些位置(例如外部存儲器310)移進數(shù)據(jù)。 然后,由硬件對數(shù)據(jù)進行處理,并將其移回。數(shù)據(jù)移動器336可以被配置為從一個位置向另一個位置移進數(shù)據(jù),并在硬件加速器334處理之后將數(shù)據(jù)移回。處理器/控制器330可以被配置為控制硬件加速器334和數(shù)據(jù)移動器336的操作。圖4是描述了在軟件和硬件中發(fā)生的典型的數(shù)據(jù)處理操作的數(shù)據(jù)流圖。如圖4所示,軟件組件402與一個或多個硬件組件(例如第一硬件組件404和第二硬件組件406)通過接口連接。如步驟408處所描述的,軟件組件402可以向第一硬件組件404發(fā)出第一組指令。所述指令可以包括用于執(zhí)行一個或多個任務的指令。然后,如步驟410處所描述的, 第一硬件組件404對該組初始的指令進行響應。為了開始與第二硬件組件406的處理,軟件組件402可以向第二硬件組件406發(fā)送一組指令(如412處所描述的),并且等待響應(如414處所描述的)。每次執(zhí)行一個任務,軟件402必須向指定的硬件組件發(fā)出一條或一組指令并等待響應(如416、418、420和422處所描述的)。在圖4中所描述的方法中,軟件中斷必須用在每個硬件任務或每組任務之后。也就是說,在完成所提供的指令之后,硬件組件必須向軟件發(fā)送中斷。這些中斷可能開銷很大,因為程序上下文必須被停止,并重新編譯以執(zhí)行中斷,然后再恢復硬件處理。此外,中斷經(jīng)常變成鎖定的,從而導致直到該中斷鎖退出之前的一段延遲時段。圖5是解釋說明各個公開的方面的簡化框圖。處理器502可以被配置為控制各個硬件組件的操作,例如第一硬件組件504和第二硬件組件506。如圖4中所示,第一硬件組件504和第二硬件組件506中每個可以是專用硬件塊,例如,數(shù)據(jù)移動器或硬件加速器。處理器502上可以存儲有軟件,該軟件用于指示該硬件組件執(zhí)行各種任務。第一硬件組件504和第二硬件組件506可以相互通信地耦合。于是,這些組件可以相互提供信息而不中斷處理器502上存儲的軟件。例如,第一硬件組件504和第二硬件組件506可以被預編程以執(zhí)行由處理器502指示的一個或多個任務。下面在圖6中進一步詳細描述這一處理過程。如圖6中所描述的,處理器502可以與第一硬件組件504和第二硬件組件506通過接口連接。根據(jù)一些方面,第一硬件組件504可以適合于將數(shù)據(jù)從各種源(例如外部存儲器)移動到本地緩沖器(例如,數(shù)據(jù)移動器)。第二硬件組件506可以是自定義的硬件塊,例如,數(shù)據(jù)加速器。如610處所描述的,處理器502可以向第一硬件組件504發(fā)出第一組命令以執(zhí)行多個任務。舉個例子,處理器502可以指示硬件組件504從外部存儲位置移進數(shù)據(jù)塊。然后,處理器502可以對第二硬件組件506編程以執(zhí)行多個任務,如612處所描述的。舉個例子,處理器502可以指示第二硬件組件506對由第一硬件組件504移入的數(shù)據(jù)塊進行操作。 雖然第一硬件組件和第二硬件組件可以被預編程以執(zhí)行指定的任務,但是,操作直到處理器502發(fā)送觸發(fā)消息才會開始,如614處所描述的。一旦接收到觸發(fā)消息,第一硬件組件504可以開始執(zhí)行預編程的任務。根據(jù)一些方面,最后的指令可以指導第一硬件組件向第二硬件組件504發(fā)送觸發(fā)消息,如616處所描述的。該觸發(fā)可以是,例如硬件中斷。如步驟618、620和622處所描述的,每個硬件組件在完成它自己的處理后,觸發(fā)其它組件執(zhí)行指令。在這一處理中不需要軟件中斷。當處理完最后的指令時,處理該最后的指令的硬件組件(這里是第一硬件組件)可以隨后向處理器 502發(fā)送中斷,如擬4處所描述的。如圖6中所描述的,可以顯著減少軟件中斷的數(shù)量。在一些方面,只需要單個軟件中斷。圖7是根據(jù)各個公開的方面,進一步詳細描述了數(shù)據(jù)處理操作的流程圖。如702 處所描述的,軟件組件可以對兩個或更多個硬件組件進行編程。對硬件組件進行編程可以包括提供要由每個硬件組件執(zhí)行的一系列指令。該系列指令可以存儲在與硬件組件相關聯(lián)的任務隊列中。根據(jù)一些方面,多于一個的硬件組件可以共享單個任務隊列,其中,每個硬件組件的指令是交織在一起的。根據(jù)示例性的方面,兩個或多個硬件組件可以包括數(shù)據(jù)移動器和硬件加速器。替代或除了數(shù)據(jù)移動器和硬件加速器,還可以使用其它硬件組件。雖然下面要結合數(shù)據(jù)移動器和硬件加速器來描述圖7中所描述的其余處理,但是應該注意的是,這僅僅是示例性的。
如上所述,每個硬件組件可以與其任務隊列關聯(lián)。于是,每個數(shù)據(jù)移動器和硬件加速器各具有與其關聯(lián)的任務隊列。這些任務隊列可以由軟件事先配置。與硬件加速器相關聯(lián)的任務隊列可以由軟件控制的寫指針來選通。與硬件加速器關聯(lián)的讀指針也可以由硬件控制。當需要執(zhí)行被編程的任務時,軟件組件可以向數(shù)據(jù)移動器發(fā)送觸發(fā)信號,如704 處所描述的。一旦接收到該觸發(fā)信號,數(shù)據(jù)移動器可以執(zhí)行其第一任務,如706處所描述的。舉個例子,數(shù)據(jù)移動器可被指示從外部存儲位置讀取第一數(shù)據(jù)塊,并將該數(shù)據(jù)移入內(nèi)部存儲位置。數(shù)據(jù)存儲器還可被指示向與硬件加速器關聯(lián)的寫指針寄存器寫入,從而觸發(fā)硬件加速器開始執(zhí)行其被分配的指令。數(shù)據(jù)移動器還可被指示暫停處理直到接收到一事件為止。當從數(shù)據(jù)移動器接收到觸發(fā)后,硬件加速器可以開始執(zhí)行其指令,如708處所描述的。這可以包括例如,對由數(shù)據(jù)移動器載入的數(shù)據(jù)執(zhí)行各種類型的操作。當完成經(jīng)排隊的任務后,硬件加速器可以發(fā)出硬件中斷,該硬件中斷觸發(fā)數(shù)據(jù)移動器繼續(xù)執(zhí)行操作,如 710處所描述的。當接收到觸發(fā)后,數(shù)據(jù)移動器可以確定其是否還有額外的任務要完成,如 712處所描述的。如果有,則處理回到步驟706。如果數(shù)據(jù)移動器沒有額外的任務要執(zhí)行, 它可以向軟件發(fā)送中斷,如714處所描述的。使數(shù)據(jù)移動器和硬件加速器能夠通過硬件中斷相互觸發(fā),這降低了中斷延時并減少了上下文切換的次數(shù)。此外,數(shù)據(jù)移動器和硬件加速器得到了較高效地利用,從而減少了總體延時。如上所述,硬件組件(例如,硬件加速器和數(shù)據(jù)移動器)可以由軟件預編程以執(zhí)行多個任務。在特定硬件加速器的情況下,加速器的輸出的長度可以是隨機的。但是,由于數(shù)據(jù)移動器也可以被預編程,數(shù)據(jù)移出(move-out)指令通常是針對移動加速器的最壞情況輸出來編寫的。這樣的配置會對帶寬造成不必要的浪費,這是因為在大多數(shù)時間內(nèi)輸出長度會小于預編程的長度。根據(jù)本發(fā)明的裝置和方法的一些方面,可以定義能夠適應硬件加速器的大部分普通輸出的數(shù)據(jù)長度的門限。在一些方面,可優(yōu)選地是,將門限定義為使得硬件加速器的所有輸出中的大部分不會超過該門限。但是,門限可以根據(jù)任何其它需要的參數(shù)來配置。舉個例子,門限可以被配置為使得加速器的所有輸出中至少預定百分比的輸出不會超過該門限,或者使得加速器的至少一部分輸出不會超過該門限。圖8是進一步詳細解釋說明門限處理的流程圖。如810處所描述的,硬件組件(例如,硬件加速器)根據(jù)預編程的指令接收并處理數(shù)據(jù)。當完成處理后,硬件加速器判斷指令的結果是否超過預定的門限,如812處所描述的,所述結果是要由第二硬件組件(例如,數(shù)據(jù)移動器)輸出的結果。更具體地,硬件加速器可以包括由軟件預配置的門限判定模塊。該門限可以針對由硬件加速器所處理的數(shù)據(jù)的尺寸來設置最大值。如814處所描述的,如果超過門限,則硬件加速器可以生成中斷以指示移出任務未被充分設定(under provisioned)。也就是說,該中斷指示在數(shù)據(jù)移動器中經(jīng)預編程的數(shù)據(jù)移出尺寸不足夠大以適應硬件加速器剛剛處理完的數(shù)據(jù)。當接收到中斷后,軟件可以讀出超過所編程的數(shù)據(jù)移出尺寸之外的多余數(shù)據(jù),如816處所描述的。硬件加速器可以在這一中斷期間暫停,并且可以在一旦該中斷退出時由軟件給予“運行(go)”指令。然后,處理可以繼續(xù)進行。舉個例子,硬件加速器或軟件組件可以向數(shù)據(jù)移動器發(fā)送觸發(fā)器,并且該數(shù)據(jù)移動器可以根據(jù)所預編程的指令而移出數(shù)據(jù),如818處所描述的。如果在步驟812判定沒有超過門限,則處理還可以在步驟818處繼續(xù)進行,其中,數(shù)據(jù)移動器按照預編程地那樣將數(shù)據(jù)移出到主存儲器。根據(jù)一些方面,可以自適應地調(diào)整參照圖8而描述的門限。舉個例子,如果在給定時間段內(nèi),由于未充分設定的數(shù)據(jù)移出指令而導致的中斷的頻率較大,那么軟件可以增大門限的大小。同樣地,如果在給定時間段內(nèi),沒有接收到大量中斷,則可以減小門限的大小。 因此,可以給軟件配置定時器和計數(shù)器,該定時器和計數(shù)器用于記錄接收到的由于未充分設定的數(shù)據(jù)移出指令而造成的所有中斷。對移出的數(shù)據(jù)的量進行控制的同時提供一種用于解決設定不充分的機制,能夠降低功率開銷和系統(tǒng)總線帶寬。另外,可以通過獲取較少次數(shù)的中斷來降低軟件復雜度。此外,可以通過將異常情況傳遞給軟件進行處理來保持硬件簡單。自適應地調(diào)整門限可以幫助確保在維持較低中斷率且避免不必要地移出數(shù)據(jù)之間實現(xiàn)良好的權衡。根據(jù)一些方面,可以將通常在軟件中執(zhí)行的操作移到硬件以便縮減軟件處理和減少等待時間以及降低總線帶寬的使用。舉個例子,硬件加速器可以配置有用以處理數(shù)據(jù)幀報頭的邏輯單元。典型地,硬件只是對數(shù)據(jù)譯碼,然后將數(shù)據(jù)轉發(fā)給軟件做進一步處理。然后,軟件將數(shù)據(jù)轉發(fā)回具有用于處理該數(shù)據(jù)的指令的硬件。這可以縮減軟件處理、減少等待時間并降低總線帶寬。在一些示例性方面中,舉個例子,硬件加速器可以配置有用以解析數(shù)據(jù)幀報頭,將該報頭與多個預定模板進行比較,并根據(jù)該報頭確定下一個處理步驟的邏輯單元。只有當沒找到報頭匹配時或者需要模板重配置時,才需要軟件交互。圖9是可以在其中實施模板處理的環(huán)境的示例。如圖9中所示,由控制處理器920 控制的硬件加速器922可以接收輸入數(shù)據(jù),并通過過濾模塊922處理該輸入數(shù)據(jù)。過濾模塊922可以將其輸出提供給一個或多個處理器914、存儲器916或接口 918-1到918-N。存儲器916可以是內(nèi)部或外部存儲器。接口 918-1到918-N可以提供到外部設備的連接,例如到膝上型電腦、PDA或任何外部電子設備的連接。舉個例子,接口 918-1到918-N可以包括USB端口、藍牙、SDIO、SDCC或其它有線或無線接口。過濾模塊922可以包括多個預定模板,其可以用于做出關于應該將輸出數(shù)據(jù)路由到何處的路由決定。舉個例子,加密數(shù)據(jù)可以由硬件加速器912接收并被譯碼。根據(jù)編程在過濾模塊922中的模板,可以通過接口 918-1到918-N將譯碼數(shù)據(jù)轉發(fā)到處理器914、存儲器916或外部設備。根據(jù)一些方面,處理器914可以用作針對更復雜的操作的后備過濾器,這些操作可能是硬件加速器912難以處理的。根據(jù)一些方面,每個業(yè)務模板可以包括一個或多個參數(shù)以及針對每個參數(shù)的特定值。每個參數(shù)可以對應于IP、TCP、UDP或一些其它協(xié)議的報頭的特定字段。舉個例子,IP 參數(shù)可以包括源地址、目的地址、地址范圍和協(xié)議。TCP或UDP參數(shù)可以包括源端口、目的端口和端口范圍。業(yè)務模板指定每個參數(shù)在報頭中的位置。因此,硬件加速器不必確切了解使用中的協(xié)議。而是,該硬件執(zhí)行報頭與模板參數(shù)的匹配。舉個例子,業(yè)務模板可以定義為檢測針對目標端口 χ且在IPv4分組中發(fā)送的TCP 幀。該模板可以包括三個參數(shù),其可設置如下版本=IPv4,協(xié)議=TCP,以及目標端口 = χ。一般而言,任何協(xié)議報頭中的任何字段都可以用作業(yè)務模板參數(shù)??梢远x任何數(shù)量的模板,并且每個模板可以與任意組參數(shù)關聯(lián)。不同的模板可以針對不同的應用、套接字等來定義,并且可以用不同的參數(shù)集來定義。每個模板還可以與當存在匹配時要執(zhí)行的動作和當不存在匹配時要執(zhí)行的動作相關聯(lián)。當接收到數(shù)據(jù)幀后,則將接收到的幀的值與模板的特定值進行比較。如果所接收到的值與特定值匹配則聲明匹配,否則聲明不匹配。如果定義為不匹配,則硬件可以發(fā)出軟件中斷,然后軟件可以處理該幀。如本申請中所述,數(shù)據(jù)處理典型地包括從第一位置移入數(shù)據(jù)、對數(shù)據(jù)進行操作, 并移回數(shù)據(jù)。典型地,在低成本、高延時存儲器中定義單個大的存儲池。從這個高延時存儲池移入數(shù)據(jù),對數(shù)據(jù)進行操作,然后將數(shù)據(jù)移回存儲池。但是,最近被訪問過的數(shù)據(jù)會被經(jīng)常重用。因此,在每次訪問之后將數(shù)據(jù)移回高延時存儲池會不必要地增加系統(tǒng)總線帶寬。根據(jù)本發(fā)明的裝置和方法的一些方面,可以在物理存儲器中定義多個存儲池。存儲分配可以基于可用的最佳存儲池,或依賴于數(shù)據(jù)有可能被訪問的頻率。圖10是依照一些方面,實現(xiàn)多個存儲池的系統(tǒng)1000的示例。系統(tǒng)1000可以包括 ASIC 910,后者包括低延時存儲器1012、處理器1014、數(shù)據(jù)移動器1016和硬件加速器1018。 還可以提供高延時存儲器1020。雖然將低延時存儲器912描繪為內(nèi)部存儲器,高延時存儲器1020描繪為外部存儲器,但是這一配置僅僅是示例性的。兩個存儲器中的一個或兩個可以是內(nèi)部的或外部的。處理器1004可以包括存儲控制器1022,其控制對高延時存儲器 1020和低延時存儲器1012的訪問。如果大部分操作采用低延時存儲器1012,則能夠較高效地處理數(shù)據(jù)。于是,可以將存儲控制器1022配置為限制對高延時存儲器1020的訪問次數(shù)。在普通的操作中,數(shù)據(jù)移動器1020可以配置為將數(shù)據(jù)移入和移出,例如,在高延時存儲器1020和低延時存儲器912之間。依照一些示例性的方面,硬件加速器1018可以配置為對直接來自低延時存儲器1012的數(shù)據(jù)進行操作。舉個例子,在一些方面,只要有可用空間就可以將數(shù)據(jù)維護在低延時存儲器1012中。在其它方面,可以根據(jù)諸如服務質量要求、通信信道特性和/或其它因素之類的特定的數(shù)據(jù)傳輸特性,來在低延時存儲器1012中存儲并維護數(shù)據(jù)。如果提供多個存儲池則可以降低硬件開銷,這是因為可以定義小而快速的池和大而慢速的池。此外,系統(tǒng)總線帶寬和功率可被降低。根據(jù)一些方面,硬件和軟件兩者都可以訪問存儲在低延時存儲器1012中的數(shù)據(jù)。 可以由硬件加速器1018處理有效載荷,以便確保實現(xiàn)低延時訪問。低延時存儲器1012可以放置在接近硬件加速器1018的地方。這樣一來,數(shù)據(jù)傳送不需要跨越系統(tǒng)總線,從而節(jié)省功率和系統(tǒng)總線帶寬。當處理數(shù)據(jù)時,數(shù)據(jù)在通過數(shù)據(jù)棧傳遞的同時經(jīng)常會被拷貝多次以便簡化每層處的實現(xiàn)(例如,當移除報頭時、復用來自多個流的數(shù)據(jù)、分段/重組等)。根據(jù)本發(fā)明的裝置和方法的一些方面,通過可以使數(shù)據(jù)留在同一位置并使不同的層對相同的數(shù)據(jù)進行操作, 來防止重復拷貝。無論每個數(shù)據(jù)操作指令是由硬件還是由軟件執(zhí)行,該數(shù)據(jù)操作指令都可以指向同一位置,例如本地硬件緩沖器。舉個例子,在執(zhí)行完UMTS譯碼之后,可以將譯碼后的數(shù)據(jù)拷貝回本地存儲器,例如本地硬件緩沖器。在軟件通過評估協(xié)議報頭而串接有效載荷之后,軟件可以指示硬件加速器執(zhí)行TCP校驗和(checksum)計算或PPP成幀。在這一處理期間,數(shù)據(jù)不需要從外部存儲位置來回移動。對于數(shù)據(jù)傳輸,根據(jù)所采用的協(xié)議而典型地將數(shù)據(jù)幀劃分為較小的單元。于是,相關的有效載荷通常被劃分到多個傳輸中。為每個單元典型地分配存儲塊,并且形成這些單元的鏈接列表,以在向更高層傳遞該鏈接列表時將有效載荷串接到更大的數(shù)據(jù)單元中。圖11描述了對接收到的分組數(shù)據(jù)單元的典型存儲分配。如圖11中所示,輸入數(shù)據(jù)幀1100可以包括多個協(xié)議數(shù)據(jù)單元(PDU),每個PDU包括報頭(HI、H2、H3)和有效載荷 (PI、P2、P3)。典型地,將該數(shù)據(jù)幀劃分為多個段,其中,每個段存儲在單獨的數(shù)據(jù)服務存儲 (DSM)單元中。如圖11中所示,PDUl (H1+P1)存儲在第一 DSM單元1104中,PDU2 (H2+P2) 存儲在第二 DSM單元1106中,PDU3 (H3+P3)存儲在第三DSM單元1108中。由于各種原因,以這種方式存儲數(shù)據(jù)是低效的。舉個例子,每個DSM單元包括其自身的報頭H,這增加了開銷。另外,DSM池中的每個DSM單元是相同尺寸的。這樣一來,當 PDU小于預配置的DSM單元尺寸時會浪費空間。如1104和1108處所描述的,在PDU之后添加填充數(shù)據(jù)P以填滿DSM單元。此外,為了稍后串接經(jīng)分段的PDU,必須維護鏈接列表,以使得該列表指出每個PDU存儲的位置以及該PDU與其它PDU如何相關。根據(jù)本發(fā)明的裝置和方法的一些示例性方面,可以通過去除報頭并從而針對更高層而直接串接連續(xù)的有效載荷,將從不同傳輸接收到的數(shù)據(jù)按每信道地匯聚成較大塊的連續(xù)存儲。這可帶來應用數(shù)據(jù)一致性以及由于串接而降低的對額外存儲分配的需求。此外, 由于縮減了填充開銷、存儲分配操作和存儲開銷,存儲器會得以簡化。如上所述,當硬件接收經(jīng)加密的數(shù)據(jù)幀時,將該幀譯碼,然后轉發(fā)給硬件用于進一步處理。根據(jù)一些示例性方面,硬件組件(例如,硬件加速器)可以進一步配置為在不將幀轉發(fā)給軟件的情況下串接相關的有效載荷。圖12是解釋說明了根據(jù)一些方面的數(shù)據(jù)處理和存儲的簡化框圖。如圖12中所示, 輸入數(shù)據(jù)幀1201可以包括多個協(xié)議數(shù)據(jù)單元,每個協(xié)議數(shù)據(jù)單元包括報頭和有效載荷。劃分單元1202可以配置為處理輸入數(shù)據(jù)幀1201。處理包括例如,將報頭和有效載荷分開。 報頭(H1、H2、H;3)可以連同指向相關聯(lián)的有效載荷的指針一起存儲在存儲器1203中。然后,硬件串接邏輯單元1204可以將有效載荷進行組合并將它們存儲在單個DSM 中。劃分單元1202和硬件串接邏輯單元1204可以由軟件邏輯單元1206編程和/或控制。 舉個例子,軟件邏輯單元1206可以對劃分單元1202進行編程以移除報頭并生成指針信息。 另外,軟件邏輯單元1206可以指導串接邏輯單元1204獲取特定的有效載荷或報頭。根據(jù)一些方面,來自多個傳輸?shù)臄?shù)據(jù)可以組合在單個DSM中。數(shù)據(jù)一旦存儲到DSM 就可以被傳向其它層,即便DSM還沒有滿。另外,可以將數(shù)據(jù)添加到DSM單元的末端。當接收到數(shù)據(jù)時,典型地不將報頭和有效載荷分開。而是,報頭和有效載荷典型地存儲在一起。但是,大部分對于如何處理分組的決策只基于分組報頭。根據(jù)本發(fā)明的裝置和方法的一些方面,只有報頭可以從一層移動到另一層。因此,只有當需要有效載荷用于處理時才可以移動有效載荷,從而提升了有效載荷數(shù)據(jù)一致性和高速緩存效率,并降低了總線利用。在典型的無線設備中,主處理器處理所有的調(diào)制解調(diào)器相關的功能。圖13是描述了典型配置的框圖。主處理器1304通過多個總線1306與硬件1308通信地耦合。存儲器1302用于存儲由硬件1308操作的數(shù)據(jù)。在工作中,無論何時主處理器1304向硬件1308發(fā)出指令,該指令都必須穿越多個總線1306。此外,硬件1308必須在完成每個指令后向主處理器1304回發(fā)軟件中斷。穿越總線并發(fā)出軟件中斷增加了大量的處理延時。依照各個示例性的方面,可以在靠近硬件的位置提供小型處理器,從而降低延時。 圖14是描述這一配置的框圖。主處理器1404通過多個總線1406與硬件1408通信地耦合。 存儲器1402用于存儲由硬件1408處理的數(shù)據(jù)。在靠近硬件1408的位置提供小型處理器1410。小型處理器1410可以是能與主處理器1404訪問相同存儲器1402的靈活可編程的處理器??梢詫⑿⌒吞幚砥?410進行編程以便與硬件1408直接交互??梢詫⑿⌒吞幚砥?410編程為指導硬件1408執(zhí)行諸如報頭提取、加密、譯碼、數(shù)據(jù)移動、連續(xù)存儲、IP過濾、報頭插入、PPP成幀之類的任務和/或其它任務。根據(jù)一些方面,當在無線設備處接收到新信息時,主處理器1404可以指導小型處理器1410開始處理數(shù)據(jù)并將硬件1408處理后的結果存儲到存儲器1402中。因此,硬件在每個任務之后不再需要中斷回到主處理器1414。另外,由于小型處理器1410是可編程的, 所以,當處理要求發(fā)生變化時可以容易地將其重編程。舉個例子,如果空中接口有變化,或者如果有新的協(xié)議版本可用,則可以將小型處理器1410重編程以實現(xiàn)該變化。依照圖14中所描述的配置,相比純軟件實現(xiàn)而言,延時得以降低。另外,中斷、存儲訪問和總線延時也可得以降低。此外,功耗也可得以降低,這是由于相比在純軟件應用中,小型處理器可以在距離硬件存儲器更近的地方實現(xiàn)。根據(jù)一些方面,主處理器和小型處理器兩者都可以訪問一個或多個專用硬件塊。 這在圖15中有所描述。主處理器1502和小型處理器1504中的每個都與多個專用硬件塊通信地耦合。這多個專用塊包括第一硬件塊1506、第二硬件塊1508和第三硬件塊1510。這些硬件塊包括例如,硬件加速器、數(shù)據(jù)移動器、加密引擎、譯碼引擎和/或任何其它專用硬件塊。主處理器1502和小型處理器1504中的每個可同時訪問硬件塊1504、1506和1508 中的不同的一個。這使得實現(xiàn)并行處理。舉個例子,主處理器1502可以配置為訪問專用于譯碼的第一硬件塊1506,而小型處理器1504可以配置為同時訪問專用于加密的第二硬件塊1508。從而,上行鏈路和下行鏈路處理能夠同時進行。小型處理器(例如,圖15中所描述的小型處理器1504)可能無法處理復雜任務。 舉個例子,當處理分組重傳時,在判定序列號何時翻轉方面涉及復雜的邏輯單元。根據(jù)一些方面,主處理器可以配置為小型處理器的后備,并處理那些不能被小型處理器正確處理的復雜任務。圖16是描述用于處理這一復雜邏輯單元的處理的流程圖。如1602處所描述的,當小型處理器接收到要處理的數(shù)據(jù)時開始處理。根據(jù)一些方面,小型處理器可以編程為總是利用預定的處理方法處理特定類型的任務。因此,如1604 處所描述的,小型處理器可以配置為指示硬件利用第一種處理方法處理數(shù)據(jù)。舉個例子,在判定序列號是否應該翻轉的情況下,小型處理器可以配置為總是假設序列號不翻轉。如1606處所描述的,主存儲器接收由硬件處理的數(shù)據(jù)。主存儲器還可以接收對于數(shù)據(jù)是如何處理的指示。如1608處所描述的,主處理器確定數(shù)據(jù)是否被正確地處理。如果是,則主處理器單單將數(shù)據(jù)轉發(fā)到其目的地,例如存儲器,如1610處所描述的。但是,如果主處理器檢測到數(shù)據(jù)沒有被正確地處理,則該主處理器可以反轉硬件所執(zhí)行的動作,并對硬件重編程以正確地處理數(shù)據(jù),如612處所描述的。在典型的數(shù)據(jù)移動操作中,處理器對數(shù)據(jù)移動器進行編程以對每個要移動的數(shù)據(jù)塊執(zhí)行拷貝任務。根據(jù)各個示例性的方面,可以在靠近硬件的位置包括拷貝引擎。圖17是包含拷貝引擎的系統(tǒng)1700的框圖。系統(tǒng)1700包括數(shù)據(jù)移動器1702、主存儲器1704、拷貝引擎1710、拷貝引擎存儲器1706和硬件1708??截愐?710可以編程為直接在硬件1708 上運行以助于拷貝和/或數(shù)據(jù)移動操作。拷貝引擎1710可與其自身專用的存儲器1706相關聯(lián),該專用的存儲器1706降低了與存儲且獲取來自主存儲器1704的數(shù)據(jù)相關聯(lián)的延時。 數(shù)據(jù)移動器1702可以編程為從拷貝引擎存儲器1706獲取數(shù)據(jù)并將其存儲在主存儲器1704 中。由于包括了拷貝引擎,所以允許比特級粒度支持具有比特級寬度的協(xié)議。另外,可以通過允許利用單個編程任務來將均勻散布的源數(shù)據(jù)拷貝到均勻散布的目標位置,從而降低編程開銷。此外,拷貝引擎可以用于由軟件所采用的任何類型的操作,例如,報頭提取和插入、數(shù)據(jù)串接或分段、字節(jié)/字對齊、以及用于數(shù)據(jù)處理的常規(guī)數(shù)據(jù)移動任務。根據(jù)一些方面,拷貝引擎1710可以編程為在單個任務中從多個PDU拷貝數(shù)據(jù)。如圖18中所描述的,數(shù)據(jù)幀可以包括多個PDU,每個PDU包括報頭(H1、H2和H3)、有效載荷 (P1、P2、P3)。報頭和有效載荷的尺寸可以事先知道,并且拷貝引擎可以被編程為知道這些尺寸。舉個例子,如圖18中所描述的,所有報頭(例如,報頭1802)的尺寸都為X,而所有有效載荷(例如,有效載荷1804)的尺寸均為Y。拷貝引擎可以編程為根據(jù)對于報頭的尺寸及有效載荷的尺寸的知識來在單個任務中拷貝N個報頭和N個有效載荷。用于執(zhí)行本申請所述功能的通用處理器、數(shù)字信號處理器(DSP)、專用集成電路 (ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或者晶體管邏輯器件、 分立硬件組件或者其任意組合,可以實現(xiàn)或執(zhí)行結合本申請所公開實施例而描述的各種示例性的邏輯單元、邏輯框、模塊和電路。通用處理器可以是微處理器,或者,該處理器也可以是任何常規(guī)的處理器、控制器、微控制器或者狀態(tài)機。處理器還可以實現(xiàn)為計算設備的組合,例如,DSP和微處理器的組合、多個微處理器、一個或多個微處理器與DSP內(nèi)核的結合、 或者任何其它此種結構。此外,至少一個處理器可以包括一個或多個可用于執(zhí)行上述一個或多個步驟和/或動作的一個或多個模塊。此外,結合本申請所公開的方面而描述的方法或者算法的步驟和/或動作可直接體現(xiàn)為硬件、由處理器執(zhí)行的軟件模塊或二者的組合中。軟件模塊可以位于RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、移動磁盤、⑶-ROM或者本領域已知的任何其它形式的存儲介質中。一種示例存儲介質可以耦接至處理器,從而使處理器能夠從該存儲介質讀取信息,且可向該存儲介質寫入信息?;蛘?,存儲介質也可以是處理器的組成部分。此外,在一些方面,處理器和存儲介質可以位于ASIC中。另外,該ASIC可以位于用戶終端中?;蛘?,處理器和存儲介質也可以作為分立組件存在于用戶終端中。另外, 在一些方面,方法或算法的步驟和/或動作可以作為一個或任何組合或集合的代碼和/或指令位于機器可讀介質和/或計算機可讀介質上,后兩種介質可以包括到計算機程序產(chǎn)品中。在一個或多個方面,本申請所述功能可以用硬件、軟件、固件或其任意組合來實現(xiàn)。當使用軟件實現(xiàn)時,可以將這些功能作為一個或多個指令或代碼存儲在計算機可讀介質中或者作為計算機可讀介質上的一個或多個指令或代碼進行傳輸。計算機可讀介質包括計算機存儲介質和通信介質,其中通信介質包括便于從一個地方向另一個地方傳送計算機程序的任何介質。存儲介質可以是計算機能夠存取的任何可用介質。通過示例而不是限制的方式,這種計算機可讀介質可以包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲、磁盤存儲介質或其它磁存儲設備、或者能夠用于攜帶或存儲指令或數(shù)據(jù)結構形式的期望程序代碼并能夠由計算機接入的任何其它介質。此外,任何連接可以適當?shù)胤Q作計算機可讀介質。 例如,如果軟件是使用同軸電纜、光纖光纜、雙絞線、數(shù)字用戶線(DSL)或者諸如紅外線、無線和微波之類的無線技術從網(wǎng)站、服務器或其它遠程源傳輸?shù)?,那么同軸電纜、光纖光纜、 雙絞線、DSL或者諸如紅外線、無線和微波之類的無線技術包括在所述介質的定義中。如本申請所使用的,磁盤(disk)和光盤(disc)包括壓縮光盤(CD)、激光盤、光盤、數(shù)字通用光盤(DVD)、軟磁盤和藍光光盤,其中磁盤通常磁性地復制數(shù)據(jù),而光盤則用激光來光學地復制數(shù)據(jù)。上面的組合也應當包括在計算機可讀介質的保護范圍之內(nèi)。
雖然前面公開討論了示例性的方面和/或實施例,但是需要注意的是在不脫離所附權利要求中定義的所描述的方面和/或實施例的保護范圍的條件下,可以做出各種改變和修改。此外,雖然以單數(shù)形式描述或聲明了所描述的方面和/或實施例的元素,但是除非明確說明限制為單數(shù),否則復數(shù)形式也是可以預期的。此外,除非另有說明,否則任何方面和/或實施例的全部或一部分可以與任何其它方面和/或實施例的全部或一部分一起使用。
權利要求
1.一種數(shù)據(jù)處理方法,包括由第一硬件組件接收用于執(zhí)行第一任務集的指令,其中,所述第一硬件組件具有與其相關聯(lián)的第一任務隊列;由第二硬件組件接收用于執(zhí)行第二任務集的指令,其中,所述第二硬件組件具有與其相關聯(lián)的第二任務隊列;在所述第一硬件組件處接收觸發(fā)消息以執(zhí)行所述第一任務集; 在完成所述第一任務集之后,由所述第一硬件組件向所述第二硬件組件發(fā)送觸發(fā)消息,以執(zhí)行所述第二任務集。
2.根據(jù)權利要求1所述的方法,其中,所述第一任務集包括從第一存儲器中讀取數(shù)據(jù)塊并將所述數(shù)據(jù)塊存儲在第二存儲器中的任務。
3.根據(jù)權利要求2所述的方法,其中,所述第二任務集包括處理在所述第二存儲器中存儲的所述數(shù)據(jù)塊的任務。
4.根據(jù)權利要求1所述的方法,其中,所述第一硬件組件通過移動與所述第二任務隊列相關聯(lián)的寫指針來觸發(fā)所述第二硬件組件。
5.根據(jù)權利要求1所述的方法,還包括在完成所述第二任務集之后,由所述第二硬件組件向所述第一硬件組件發(fā)送觸發(fā)消息;由所述第一硬件組件判斷在所述第一任務隊列中是否還存在任何其它任務; 如果在所述第一任務隊列中不存在其它任務,則向軟件組件發(fā)送軟件中斷。
6.根據(jù)權利要求3所述的方法,還包括由所述第二硬件組件確定所處理的數(shù)據(jù)塊的長度何時超過門限長度,其中,所述門限長度小于所處理的數(shù)據(jù)的最大可能長度;由所述第二硬件組件生成指示所處理的數(shù)據(jù)塊的長度超過所述門限長度的軟件中斷。
7.根據(jù)權利要求6所述的方法,還包括由軟件組件移動所述數(shù)據(jù)塊中超過所述門限長度的一部分; 由所述軟件組件觸發(fā)所述第一硬件組件來移動所述數(shù)據(jù)塊中的其余部分。
8.根據(jù)權利要求6所述的方法,其中,根據(jù)所述軟件中斷的頻率來動態(tài)地調(diào)整所述門限長度。
9.根據(jù)權利要求3所述的方法,還包括向所述第二硬件組件提供業(yè)務模板,其中,所述業(yè)務模板包括用于所述第二硬件組件采取動作的條件集。
10.根據(jù)權利要求9所述的方法,其中,所述第二硬件組件將所述數(shù)據(jù)塊與所述業(yè)務模板進行比較。
11.根據(jù)權利要求10所述的方法,其中,當所述數(shù)據(jù)塊與所述業(yè)務模板中的所述條件集中的一個條件相匹配時,所述第二硬件組件對所述數(shù)據(jù)塊采取動作。
12.根據(jù)權利要求10所述的方法,其中,當所述數(shù)據(jù)塊與所述業(yè)務模板中的所述條件集中的任何一個條件都不匹配時,所述第二硬件組件向軟件模塊發(fā)送所述數(shù)據(jù)塊。
13.一種數(shù)據(jù)處理裝置,包括 處理器;第一存儲器; 第二存儲器;第一硬件組件,具有與其相關聯(lián)的第一任務隊列; 第二硬件組件,具有與其相關聯(lián)的第二任務隊列;其中,將多個任務預先存儲在所述第一任務隊列中,將多個第二任務預先存儲在所述第二任務隊列中,所述第一硬件組件用于接收觸發(fā)以開始執(zhí)行所述多個第一任務,并用于向所述第二硬件組件發(fā)出觸發(fā)以執(zhí)行所述多個第二任務。
14.根據(jù)權利要求13所述的數(shù)據(jù)處理裝置,其中,所述多個第一任務中的至少一個第一任務是從第一存儲器中讀取數(shù)據(jù)塊并將所述數(shù)據(jù)塊存儲在所述第二存儲器中的任務。
15.根據(jù)權利要求14所述的數(shù)據(jù)處理裝置,其中,所述多個第二任務中的至少一個第二任務是處理在所述第二存儲器中存儲的所述數(shù)據(jù)塊的任務。
16.根據(jù)權利要求13所述的數(shù)據(jù)處理裝置,其中,所述第一硬件組件是數(shù)據(jù)移動器。
17.根據(jù)權利要求13所述的數(shù)據(jù)處理裝置,其中,所述第二硬件組件是硬件加速器。
18.根據(jù)權利要求15所述的數(shù)據(jù)處理裝置,其中,所述第二硬件組件包括比較器,該比較器用于將所處理的數(shù)據(jù)塊的長度與門限長度進行比較,并且其中,當所處理的數(shù)據(jù)塊的長度大于所述門限長度時,所述第二硬件組件生成軟件中斷。
19.根據(jù)權利要求18所述的數(shù)據(jù)處理裝置,其中,根據(jù)所述軟件中斷的頻率來動態(tài)地調(diào)整所述門限長度。
20.根據(jù)權利要求15所述的數(shù)據(jù)處理裝置,還包括具有條件集的業(yè)務模板,其中, 所述第二硬件組件將所述數(shù)據(jù)塊與所述業(yè)務模板進行比較。
21.至少一個處理器,包括第一模塊,用于通過第一硬件組件接收用于執(zhí)行第一任務集的指令; 第二模塊,用于通過第二硬件組件接收用于執(zhí)行第二任務集的指令; 第三模塊,用于接收觸發(fā)消息以執(zhí)行所述第一任務集;第四模塊,用于從所述第一硬件組件向所述第二硬件組件發(fā)出觸發(fā)消息以執(zhí)行所述第二任務集。
22.—種在計算機可讀介質上記錄的計算機程序,包括 由第一硬件組件接收用于執(zhí)行第一任務集的指令; 由第二硬件組件接收用于執(zhí)行第二任務集的指令;接收觸發(fā)消息以執(zhí)行所述第一任務集;從所述第一硬件組件向所述第二硬件組件發(fā)出觸發(fā)消息以執(zhí)行所述第二任務集。
23.一種裝置,包括用于通過第一硬件組件接收用于執(zhí)行第一任務集的指令的模塊,其中所述第一硬件組件具有與其相關聯(lián)的第一任務隊列;用于通過第二硬件組件接收用于執(zhí)行第二任務集的指令的模塊,其中所述第二硬件組件具有與其相關聯(lián)的第二任務隊列;用于在所述第一硬件組件處接收觸發(fā)消息以執(zhí)行所述第一任務集的模塊; 在完成所述第一任務集之后,用于通過所述第一硬件組件向所述第二硬件組件發(fā)送觸發(fā)消息以執(zhí)行所述第二任務集的模塊。
全文摘要
高效數(shù)據(jù)處理裝置和方法包括由軟件進行預編程的硬件組件。每一個硬件組件觸發(fā)其它組件來完成其任務。在完成最后的預編程的硬件任務之后,硬件組件發(fā)出軟件中斷。
文檔編號G06F9/48GK102473115SQ201080035505
公開日2012年5月23日 申請日期2010年8月13日 優(yōu)先權日2009年8月13日
發(fā)明者I·A·坎, I·米爾, M·科倫茨, M·薩迪亞納拉揚, S·烏爾加昂卡爾, S·克里什納穆爾蒂, S·馬赫什瓦里, T·T·利烏, T·克林根布林 申請人:高通股份有限公司