本發(fā)明屬于內(nèi)存管理方法領(lǐng)域,尤其涉及一種內(nèi)存管理方法、嵌入式系統(tǒng)和視頻數(shù)據(jù)處理系統(tǒng)。
背景技術(shù):在嵌入式系統(tǒng)中,由于內(nèi)存是有限的,需要將內(nèi)存固定劃分給操作系統(tǒng)和各個硬件單元,因此如何最有效地劃分與使用內(nèi)存,已成為亟待解決的問題。如圖1所示,在傳統(tǒng)的嵌入式操作系統(tǒng)中,各個硬件單元之間是獨立工作,當系統(tǒng)啟動時,會按照系統(tǒng)中各個硬件單元的需求,為每一個硬件單元都單獨劃分一段內(nèi)存供其專用,即硬件單元的專用內(nèi)存。各硬件單元的專用內(nèi)存,相互是獨立的。由于在實際系統(tǒng)運行過程中,可能并不一定所有的硬件單元都同時工作,其中某一個或幾個硬件單元可能并沒有工作,那么預先為該不工作的硬件單元單獨劃分的專用內(nèi)存就不會被使用,這樣就會產(chǎn)生內(nèi)存的浪費。例如一個具體的場景,如圖2所示,是一種傳統(tǒng)的視頻數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。在傳統(tǒng)的、存在單獨的視頻解碼單元、并且使用圖像處理單元GPU做最終顯示渲染的CPU芯片中,包括如下三個硬件單元:視頻解碼單元11、GPU13和顯示單元15。其中,視頻解碼單元11,用于將編碼數(shù)據(jù)解碼為可以顯示的數(shù)據(jù),例如將H264編碼的數(shù)據(jù)解碼為RGB數(shù)據(jù)。圖像處理的硬件單元13,即GPU(GraphicProcessingUnit,圖形處理單元):用于將解碼后的數(shù)據(jù)進行處理,例如用于處理2D、3D數(shù)據(jù),例如游戲;還用于處理普通的RGB數(shù)據(jù),它會將所有經(jīng)過它處理的數(shù)據(jù)最后傳輸?shù)斤@示單元。顯示單元15:用于將GPU處理后的數(shù)據(jù)進行存儲,并傳輸?shù)斤@示器上進行顯示,這樣用戶才能看到最終效果。系統(tǒng)為每一個硬件單元都分別劃分一段專用內(nèi)存:視頻解碼單元專用內(nèi)存12、GPU專用內(nèi)存14和顯示單元專用內(nèi)存16。其中,所謂專用內(nèi)存,是在系統(tǒng)啟動時,將內(nèi)存為每個硬件單元提前劃分好該硬件單元的專用內(nèi)存,僅供該該硬件單元專用,劃分好之后,就不能由其它硬件單元隨意使用。當播放視頻時,包括以下步驟:1、將數(shù)據(jù)傳輸?shù)揭曨l解碼單元11,該視頻解碼單元將該數(shù)據(jù)進行解碼后放入視頻解碼單元專用內(nèi)存12;2、將解碼后的數(shù)據(jù)從視頻解碼單元12拷貝到GPU專用內(nèi)存14,并經(jīng)過GPU13進行處理;其中的數(shù)據(jù)拷貝工作可以由GPU13來做,也可由其它硬件單元來做;3、將通過GPU13處理后的數(shù)據(jù)傳輸?shù)斤@示單元專用內(nèi)存16;4、顯示單元15從顯示內(nèi)存單元16中讀取數(shù)據(jù)后進行顯示。采用上述方法,那么就會至少有一次數(shù)據(jù)拷貝的過程,這樣會浪費多余的時間和功耗?;蛘?,不需要第2步,而是可以將解碼后的數(shù)據(jù)的物理內(nèi)存的地址通知給GPU13,由GPU13根據(jù)地址,從視頻解碼單元專用內(nèi)存12中進行數(shù)據(jù)讀取。雖然這種做法不會存在數(shù)據(jù)拷貝的問題,但是仍需要視頻解碼單元11和GPU13分別有各自的專用內(nèi)存。由于它們是不同的硬件單元,需要各自的專用內(nèi)存,各自分別處理。目前的傳統(tǒng)做法都是會在操作系統(tǒng)啟動之前就規(guī)劃好視頻解碼單元11、GPU13和顯示單元15各個硬件單元各自需要的專用內(nèi)存:視頻解碼單專用內(nèi)存元12、GPU專用內(nèi)存14和顯示單元專用內(nèi)存16,這些專用內(nèi)存都具有獨占性。因此,導致硬件單元占用了系統(tǒng)較大的內(nèi)存,又可能不會被充分利用,從而造成了內(nèi)存的浪費。在嵌入式系統(tǒng)中,總內(nèi)存的大小是有限的,如果單獨給每一個硬件單元都劃分專用內(nèi)存,就會導致所有硬件單元會占用系統(tǒng)過多的內(nèi)存,反而留給操作系統(tǒng)的內(nèi)存減少,影響系統(tǒng)性能和速度。
技術(shù)實現(xiàn)要素:有鑒于此,本發(fā)明所要解決的技術(shù)問題是提供一種內(nèi)存管理方法,從而達到為系統(tǒng)節(jié)省內(nèi)存的目的。為了對披露的實施例的一些方面有一個基本的理解,下面給出了簡單的概括。該概括部分不是泛泛評述,也不是要確定關(guān)鍵/重要組成元素或描繪這些實施例的保護范圍。其唯一目的是用簡單的形式呈現(xiàn)一些概念,以此作為后面的詳細說明的序言。在一些可選的實施例中,提供了一種內(nèi)存管理方法,包括:在嵌入式系統(tǒng)的內(nèi)核中設置一個內(nèi)存管理模塊,用于對供硬件單元使用的內(nèi)存進行管理;操作系統(tǒng)啟動時,為所述內(nèi)存管理模塊劃分內(nèi)存;當一個或多個硬件單元需要使用內(nèi)存時,向所述內(nèi)存管理模塊申請內(nèi)存;所述內(nèi)存管理模塊將其部分內(nèi)存劃分給該申請內(nèi)存的一個或多個硬件單元;當該申請內(nèi)存的一個或多個硬件單元使用完內(nèi)存后,釋放該內(nèi)存。在一些可選的實施例中,為所述內(nèi)存管理模塊劃分的內(nèi)存的大小,是由操作系統(tǒng)預先根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大估算值確定的。在一些可選的實施例中,還包括:所述內(nèi)存管理模塊工作在操作系統(tǒng)的內(nèi)核之下。在一些可選的實施例中,在操作系統(tǒng)的內(nèi)核中定義一組接口,用于申請和釋放所述內(nèi)存管理模塊所管理的內(nèi)存。在一些可選的實施例中,在硬件單元的驅(qū)動程序中實現(xiàn)對所述接口的調(diào)用。在一些可選的實施例中,還包括:按順序從所述內(nèi)存管理模塊中內(nèi)存的低地址到高地址進行劃分。在一些可選的實施例中,還包括:檢查所述內(nèi)存管理模塊的標記是否可用,如果可用,則申請成功,并將使用過的內(nèi)存進行標記;當所述硬件單元使用完該內(nèi)存后,將該內(nèi)存標記為可用。在一些可選的實施例中,還包括:操作系統(tǒng)啟動時,還為部分硬件單元劃分專用內(nèi)存;當其他一個或多個沒有被劃分內(nèi)存的硬件單元需要使用內(nèi)存時,向已被劃分專用內(nèi)存的硬件單元申請內(nèi)存;該被劃分專用內(nèi)存的硬件單元將其專用內(nèi)存中的部分內(nèi)存劃分給申請內(nèi)存的一個或多個硬件單元;或,當其他一個或多個沒有被劃分內(nèi)存的硬件單元需要使用內(nèi)存時,向所述內(nèi)存管理模塊申請內(nèi)存;所述內(nèi)存管理模塊將其專用內(nèi)存中的部分內(nèi)存劃分給申請內(nèi)存的一個或多個硬件單元;當該申請內(nèi)存的一個或多個硬件單元使用完該內(nèi)存后,釋放該內(nèi)存。在一些可選的實施例中,為所述部分硬件單元劃分的專用內(nèi)存的大小,是根據(jù)該硬件單元工作需要的內(nèi)存大小而確定的,為所述內(nèi)存管理模塊劃分的內(nèi)存的大小,是根據(jù)其它沒有被劃分內(nèi)存的硬件單元的工作情況而確定的。在一些可選的實施例中,還提供了一種內(nèi)存管理方法,包括:操作系統(tǒng)啟動時,為部分硬件單元劃分專用內(nèi)存,用于對供硬件單元使用的內(nèi)存進行管理;當其它沒有被劃分專用內(nèi)存的一個或多個硬件單元需要使用內(nèi)存時,向被劃分專用內(nèi)存的硬件單元申請內(nèi)存;該被劃分專用內(nèi)存的硬件單元將其部分內(nèi)存劃分給該申請內(nèi)存的一個或多個沒有被劃分專用內(nèi)存的硬件單元;當該申請內(nèi)存的一個或多個硬件單元使用完內(nèi)存后,釋放該內(nèi)存。在一些可選的實施例中,為所述部分硬件單元劃分的專用內(nèi)存的大小,是由操作系統(tǒng)提前根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值估算而確定的。在一些可選的實施例中,提供了一種嵌入式系統(tǒng),包括:CPU、一個或多個硬件單元和一個內(nèi)存管理模塊;其中,所述內(nèi)存管理模塊,用于對供硬件單元使用的內(nèi)存進行管理,當一個或多個硬件單元申請內(nèi)存時,對內(nèi)存進行劃分,將其部分內(nèi)存劃分給該申請內(nèi)存的一個或多個硬件單元。在一些可選的實施例中,所述內(nèi)存管理模塊中的內(nèi)存,是由操作系統(tǒng)啟動時進行劃分的;為所述內(nèi)存管理模塊劃分的內(nèi)存的大小,是由操作系統(tǒng)提前根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值估算而確定的。在一些可選的實施例中,還包括:第一硬件單元專用內(nèi)存,用于存儲所述第一硬件單元的數(shù)據(jù),還用于當其它一個或多個硬件單元向第一硬件單元申請內(nèi)存時,為該申請內(nèi)存的一個或多個硬件單元提供內(nèi)存。在一些可選的實施例中,還包括:所述第一硬件單元專用內(nèi)存中的內(nèi)存和內(nèi)存管理模塊中的內(nèi)存,是由操作系統(tǒng)啟動時進行劃分的;所述第一硬件單元專用內(nèi)存中內(nèi)存的大小,是根據(jù)該硬件單元工作需要的內(nèi)存大小而確定的;所述內(nèi)存管理模塊中內(nèi)存的大小,是根據(jù)其它沒有被劃分內(nèi)存的硬件單元的工作情況而確定的。在一些可選的實施例中,還提供了一種嵌入式系統(tǒng),包括:CPU、一個或多個硬件單元和第一硬件單元專用內(nèi)存;其中,所述第一硬件單元專用內(nèi)存,用于對供硬件單元使用的內(nèi)存進行管理,當其它沒有被劃分專用內(nèi)存的一個或多個硬件單元向被劃分專用內(nèi)存的硬件單元申請內(nèi)存時,為該申請內(nèi)存的硬件單元提供內(nèi)存。在一些可選的實施例中,還包括:所述第一硬件單元專用內(nèi)存中的內(nèi)存,是由操作系統(tǒng)啟動時進行劃分的;為第一硬件單元劃分的專用內(nèi)存的大小,是由操作系統(tǒng)提前根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值估算而確定的。在一些可選的實施例中,還提供了一種視頻數(shù)據(jù)處理系統(tǒng),包括:CPU,視頻解碼單元,用于將數(shù)據(jù)解碼成能夠用于顯示的數(shù)據(jù);圖像處理單元,用于將所述視頻解碼單元解碼后的數(shù)據(jù)進行處理;顯示單元,用于將所述圖像處理單元處理后的數(shù)據(jù)傳輸?shù)斤@示器進行顯示;內(nèi)存管理模塊,用于對供硬件單元使用的內(nèi)存進行管理,當一個或多個硬件單元申請內(nèi)存時,對內(nèi)存進行劃分。在一些可選的實施例中,當所述視頻解碼單元和/或所述圖像處理單元需要使用內(nèi)存時,向所述內(nèi)存管理模塊申請內(nèi)存;所述內(nèi)存管理模塊將內(nèi)存劃分給所述視頻解碼單元和/或所述圖像處理單元;當所述視頻解碼單元和/或所述圖像處理單元使用完內(nèi)存時,釋放該內(nèi)存。在一些可選的實施例中,所述內(nèi)存管理模塊中的內(nèi)存,是由操作系統(tǒng)啟動后劃分的;為所述內(nèi)存管理模塊劃分的內(nèi)存的大小,是由操作系統(tǒng)提前根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值估算而確定的。在一些可選的實施例中,還包括:視頻解碼單元專用內(nèi)存,用于存儲所述視頻解碼單元解碼后的數(shù)據(jù),還用于當所述圖像處理單元向所述視頻解碼單元申請內(nèi)存時,對內(nèi)存進行劃分。在一些可選的實施例中,當所述圖像處理單元需要使用內(nèi)存時,向所述視頻解碼單元申請內(nèi)存;所述視頻解碼單元將所述視頻解碼單元專用內(nèi)存中的內(nèi)存劃分給所述圖像處理單元;當所述圖像處理單元使用完內(nèi)存時,釋放該內(nèi)存。在一些可選的實施例中,所述視頻解碼單元專用內(nèi)存中的內(nèi)存和所述內(nèi)存管理模塊中的內(nèi)存,是由操作系統(tǒng)啟動后劃分的;所述視頻解碼單元專用內(nèi)存中內(nèi)存的大小,是根據(jù)所述視頻解碼單元工作時需要的內(nèi)存而確定的,所述內(nèi)存管理模塊中內(nèi)存的大小,是根據(jù)其它沒有被劃分內(nèi)存的硬件單元的工作情況而確定的。在一些可選的實施例中,還包括:圖像處理單元專用內(nèi)存,用于存儲所述圖像處理單元處理后的數(shù)據(jù),還用于當所述視頻解碼單元申請內(nèi)存時,對內(nèi)存進行劃分。在一些可選的實施例中,當所述視頻解碼單元需要使用內(nèi)存時,向所述圖像處理單元申請內(nèi)存;所述圖像處理單元將所述圖像處理單元專用內(nèi)存中的內(nèi)存劃分給所述視頻解碼單元;當所述視頻解碼單元使用完內(nèi)存時,釋放該內(nèi)存。在一些可選的實施例中,所述圖像處理單元專用內(nèi)存中的內(nèi)存和所述內(nèi)存管理模塊中的內(nèi)存,是由操作系統(tǒng)啟動后劃分的;所述圖像處理單元專用內(nèi)存中內(nèi)存的大小,是根據(jù)所述圖像處理單元工作時需要的內(nèi)存而確定的,所述內(nèi)存管理模塊中內(nèi)存的大小,是根據(jù)其它沒有被劃分內(nèi)存的硬件單元的工作情況而確定的。綜上所述,本發(fā)明提供了一種內(nèi)存管理的方法,用于嵌入式操作系統(tǒng),采用本發(fā)明的方案,減少了操作系統(tǒng)的給硬件單元提供的預留內(nèi)存,減少了浪費;并且節(jié)省了至少一次拷貝,進而節(jié)省了時間和功耗,提高了系統(tǒng)性能。為了上述以及相關(guān)的目的,一個或多個實施例包括后面將詳細說明并在權(quán)利要求中特別指出的特征。下面的說明以及附圖詳細說明某些示例性方面,并且其指示的僅僅是各個實施例的原則可以利用的各種方式中的一些方式。其它的益處和新穎性特征將隨著下面的詳細說明結(jié)合附圖考慮而變得明顯,所公開的實施例是要包括所有這些方面以及它們的等同。說明書附圖圖1是本發(fā)明背景技術(shù)提供的一種傳統(tǒng)的嵌入式系統(tǒng)的結(jié)構(gòu)示意圖;圖2是本發(fā)明背景技術(shù)提供的一種傳統(tǒng)的視頻數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖;圖3是本發(fā)明實施例二中提供的一種嵌入式系統(tǒng)的結(jié)構(gòu)示意圖;圖4是本發(fā)明實施例四中提供的一種嵌入式系統(tǒng)的結(jié)構(gòu)示意圖;圖5是本發(fā)明實施例四中提供的另一種嵌入式系統(tǒng)的結(jié)構(gòu)示意圖;圖6是本發(fā)明實施例六中提供的另一種嵌入式系統(tǒng)的結(jié)構(gòu)示意圖;圖7是本發(fā)明實施例七中提供的一種視頻數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖;圖8是本發(fā)明實施例八中提供的另一種視頻數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖;圖9是本發(fā)明實施例七中提供的又一種視頻數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。具體實施方式以下描述和附圖充分地示出本發(fā)明的具體實施方案,以使本領(lǐng)域的技術(shù)人員能夠?qū)嵺`它們。其他實施方案可以包括結(jié)構(gòu)的、邏輯的、電氣的、過程的以及其他的改變。實施例僅代表可能的變化。除非明確要求,否則單獨的組件和功能是可選的,并且操作的順序可以變化。一些實施方案的部分和特征可以被包括在或替換其他實施方案的部分和特征。本發(fā)明的實施方案的范圍包括權(quán)利要求書的整個范圍,以及權(quán)利要求書的所有可獲得的等同物。在本文中,本發(fā)明的這些實施方案可以被單獨地或總地用術(shù)語“發(fā)明”來表示,這僅僅是為了方便,并且如果事實上公開了超過一個的發(fā)明,不是要自動地限制該應用的范圍為任何單個發(fā)明或發(fā)明構(gòu)思。實施例一在一些可選的實施例中,提供了一種內(nèi)存管理方法,包括:在嵌入式系統(tǒng)的內(nèi)核中設置一個內(nèi)存管理模塊,用于對硬件單元使用的內(nèi)存進行管理;當操作系統(tǒng)啟動時,不再為每個硬件單元劃分單獨的內(nèi)存,而是為該內(nèi)存管理模塊劃分內(nèi)存;其中,該內(nèi)存管理模塊工作在操作系統(tǒng)的內(nèi)核之下;當其中一個或多個硬件單元需要使用內(nèi)存時,通過該硬件單元的驅(qū)動程序臨時向該內(nèi)存管理模塊申請內(nèi)存;當該硬件單元使用完申請到的內(nèi)存后,釋放該內(nèi)存,即將其交還給內(nèi)存管理模塊。這樣,我們就能夠更加有效得使用內(nèi)存。具體地,內(nèi)存管理模塊有如下幾種實現(xiàn)方法:第一種方法,在操作系統(tǒng)的內(nèi)核中定義一組接口,用于申請和釋放內(nèi)存管理模塊所管理的內(nèi)存,在硬件單元的驅(qū)動程序中實現(xiàn)對該接口的調(diào)用。例如:可以采用4K字節(jié)為最小單位,按順序劃分的方法。當硬件單元需要使用內(nèi)存時,就按順序從內(nèi)存的低地址到高地址進行劃分,首先檢查內(nèi)存的標記是否可以使用,如果可以使用,則申請成功,并將被使用的內(nèi)存進行標記;如果檢查結(jié)果為已被使用,則跳過這段內(nèi)存,檢查下一段內(nèi)存,直到找到可以使用的內(nèi)存為止;當內(nèi)存使用完畢后,則將這段內(nèi)存標記為無人使用,這樣可以將這段內(nèi)存釋放并歸還給內(nèi)存管理模塊。第二種方法,由于第一種方法以4k字節(jié)為最小單位,在一些應用環(huán)境中,這個值可能會有點小,導致出現(xiàn)很多內(nèi)存碎片,因此,也可以按照4M為最小單位進行劃分。第三種方法,也可以根據(jù)情況的靈活變動,可以根據(jù)所有硬件單元一次申請的最大值來確定,這樣就能保證不會因為內(nèi)存的碎片過多,影響使用。第四種方法,還可以按照一個硬件單元在實際使用時會占用的最大內(nèi)存來劃分,例如前面舉例中可以預先計算出硬件單元a在一次應用中最大會使用50M內(nèi)存,那么我們在硬件單元a開始工作時一次性劃分50M內(nèi)存供其使用,在硬件單元a結(jié)束這次應用后再釋放這50M內(nèi)存。在實際的使用環(huán)境中,情況可能會更復雜,那么就需要我們估計實際情況,采取更加靈活的內(nèi)存劃分方法。在嵌入式系統(tǒng)中,系統(tǒng)的內(nèi)存被劃分為兩部分,一部分內(nèi)存是供操作系統(tǒng)使用的內(nèi)存,另一部分是供各個硬件單元使用的內(nèi)存。本發(fā)明實施例一中描述的內(nèi)存管理模塊,其作用就是對硬件單元使用的內(nèi)存進行管理。系統(tǒng)將前面描述的“供各個硬件單元使用的內(nèi)存”劃分給內(nèi)存管理模塊進行管理。另外,操作系統(tǒng)需要預先估算好至少需要把多大內(nèi)存劃分給內(nèi)存管理模塊,這個估算值就是根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值來確定的。通過估算,才能夠保證在一個或多個硬件單元的任何工作情況下,內(nèi)存都會足夠使用,還不會浪費。即為所述內(nèi)存管理模塊劃分的內(nèi)存的大小,是由操作系統(tǒng)預先根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大估算值確定的。其中,本發(fā)明實施例中提到的“最復雜情況下”,均是指除CPU以外的硬件單元工作時所使用的內(nèi)存的峰值。采用本發(fā)明實施例一的方法,任意兩個或多個硬件單元可以共用內(nèi)存的方式,從而減少了操作系統(tǒng)給硬件單元提供的預留內(nèi)存,減少了浪費,節(jié)省了內(nèi)存;并且節(jié)省了至少一次拷貝,進而節(jié)省了時間和功耗,提高了系統(tǒng)性能。實施例二在一些可選的實施例中,提供了一種嵌入式系統(tǒng)的結(jié)構(gòu)示意圖。如圖3所示,是本實施例三提供的一種嵌入式系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)至少包括CPU21,N個硬件單元(第一硬件單元23、第二硬件單元24、第三硬件單元25、……第N硬件單元26)和內(nèi)存管理模塊22;其中,內(nèi)存管理模塊22,用于對供硬件單元使用的內(nèi)存進行管理,具體為當一個或多個硬件單元申請內(nèi)存時,對內(nèi)存進行劃分。其中,內(nèi)存管理模塊22中的內(nèi)存,是由操作系統(tǒng)啟動后劃分的;內(nèi)存管理模塊22所劃分到的內(nèi)存大小,是根據(jù)所整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值估算而確定的。當一個或多個所述硬件單元向內(nèi)存管理模塊22申請內(nèi)存時,內(nèi)存管理模塊22用于將其部分內(nèi)存劃分給該申請內(nèi)存的一個或多個硬件單元;當該申請內(nèi)存的一個或多個硬件單元使用完該內(nèi)存時,釋放該內(nèi)存。例如,當?shù)谝挥布卧?3向內(nèi)存管理模塊22申請內(nèi)存,內(nèi)存管理模塊22用于將其部分內(nèi)存劃分給該第一硬件單元23,當?shù)谝挥布卧?3使用完內(nèi)存時,釋放該內(nèi)存?;蛘呃?,當?shù)谝挥布卧?3和第二硬件單元24都向內(nèi)存管理模塊22申請內(nèi)存,內(nèi)存管理模塊22用于將其部分內(nèi)存劃分給該第一硬件單元23和第二硬件單元24,當?shù)谝挥布卧?3和第二硬件單元24使用完內(nèi)存后,釋放該內(nèi)存。以上僅以兩種情況舉例說明,其他一個或多個硬件單元向內(nèi)存管理模塊申請內(nèi)存的方案,均在本發(fā)明保護范圍之內(nèi)。下面進行舉例說明。假設一個系統(tǒng)有512M內(nèi)存,a,b,c三個硬件單元各需要100M內(nèi)存,當它們工作時的最復雜情況下,會使用200M內(nèi)存。那么如果按照現(xiàn)有的傳統(tǒng)方法,會給這三個硬件單元共劃分300M內(nèi)存,因此留給操作系統(tǒng)的只剩212M內(nèi)存。而采用本發(fā)明實施例一的方法后,只需要為三個硬件單元預留200M內(nèi)存,就可以滿足這三個硬件單元的使用,從而留給操作系統(tǒng)的內(nèi)存就會有312M了,節(jié)省了100M內(nèi)存。采用本發(fā)明實施例二的系統(tǒng),任意兩個或多個硬件單元可以共用內(nèi)存的方式,從而減少了操作系統(tǒng)給硬件單元提供的預留內(nèi)存,減少了浪費,節(jié)省了內(nèi)存;并且節(jié)省了至少一次拷貝,進而節(jié)省了時間和功耗,提高了系統(tǒng)性能。實施例三在一些可選的實施例中,提供了另外一種內(nèi)存管理方法,包括:不是把所有的硬件單元使用的內(nèi)存都劃分給內(nèi)存管理模塊,還可以給部分硬件單元也劃分專用內(nèi)存。為部分硬件單元劃分的內(nèi)存的大小,是根據(jù)該硬件單元工作需要的內(nèi)存大小而定的。為內(nèi)存管理模塊劃分的內(nèi)存的大小,是根據(jù)其它沒有被劃分內(nèi)存的硬件單元工作的情況而確定的。具體還包括以下兩種情況:第一種情況:當其它沒有被劃分內(nèi)存的一個或多個硬件單元需要使用內(nèi)存時,可以向內(nèi)存管理模塊申請內(nèi)存,內(nèi)存管理模塊將其部分內(nèi)存劃分給申請內(nèi)存的一個或多個硬件單元;當該申請內(nèi)存的一個或多個硬件單元用完該內(nèi)存后,釋放該內(nèi)存。其它沒有被劃分內(nèi)存的硬件單元使用內(nèi)存,均由內(nèi)存管理模塊管理。第二種情況:當沒有被劃分內(nèi)存的一個或多個硬件單元需要使用內(nèi)存時,還可以向已被劃分專用內(nèi)存的硬件單元申請內(nèi)存,該被劃分專用內(nèi)存的硬件單元將其專用內(nèi)存的部分內(nèi)存劃分給申請內(nèi)存的一個或多個硬件單元;當該申請內(nèi)存的一個或多個硬件單元用完該內(nèi)存后,釋放該內(nèi)存。采用本發(fā)明實施例三的方法,任意多個硬件單元,沒有劃分專用內(nèi)存的硬件單元可以向已劃分有內(nèi)存的硬件單元申請內(nèi)存,從而減少了操作系統(tǒng)給硬件單元提供的預留內(nèi)存,減少了浪費,節(jié)省了內(nèi)存;并且節(jié)省了至少一次拷貝,進而節(jié)省了時間和功耗,提高了系統(tǒng)性能。實施例四在一些可選的實施例中,提供了另外一種嵌入式操作系統(tǒng)。如圖4所示,是本發(fā)明實施例四中提供的一種嵌入式系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)至少包括CPU31,內(nèi)存管理模塊32,N個硬件單元(第一硬件單元33、第二硬件單元34、第三硬件單元35……第N硬件單元36),和第一硬件單元專用內(nèi)存37。其中,為第一硬件單元專用內(nèi)存37所劃分的內(nèi)存的大小,是根據(jù)第一硬件單元工作時使用的內(nèi)存而確定的。為內(nèi)存管理模塊32劃分的內(nèi)存的大小是根據(jù)第二硬件單元34、第三硬件單元35……和第N硬件單元36,也就是沒有被劃分專用內(nèi)存的硬件單元的工作情況來確定的)。第二硬件單元34、第三硬件單元35……和第N硬件單元36中的一個或多個硬件單元申請內(nèi)存,由內(nèi)存管理模塊32來進行管理。當?shù)诙布卧?4……第N硬件單元36中的一個或多個硬件單元向內(nèi)存管理模塊32申請內(nèi)存,內(nèi)存管理模塊32將其部分內(nèi)存劃分給申請內(nèi)存的該硬件單元,當該硬件單元使用完內(nèi)存后,釋放該內(nèi)存?;蛘呷鐖D5所示,是本發(fā)明實施例四中提供的一種嵌入式系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)至少包括CPU41,內(nèi)存管理模塊42,N個硬件單元(第一硬件單元43、第二硬件單元44、第三硬件單元45……第N硬件單元46),和第一硬件單元專用內(nèi)存47。其中,為第一硬件單元專用內(nèi)存47所劃分的內(nèi)存的大小,是根據(jù)第一硬件單元43工作時使用的內(nèi)存而確定的。為內(nèi)存管理模塊42劃分的內(nèi)存的大小是根據(jù)第二硬件單元44、第三硬件單元45、……和第N硬件單元46,也就是其它沒有被劃分專用內(nèi)存的硬件單元的工作情況來確定的。與圖4不同的是,當?shù)诙布卧?4、第三硬件單元45、……和第N硬件單元46中的一個或多個硬件單元需要使用內(nèi)存時,也可以向第一硬件單元43申請內(nèi)存,第一硬件單元43將第一硬件單元專用內(nèi)存46的部分內(nèi)存劃分給申請內(nèi)存的硬件單元,當該硬件單元使用完內(nèi)存后,釋放該內(nèi)存。以上僅以兩種情況舉例說明,其他不是給所有硬件單元劃分專用內(nèi)存,而是僅給部分硬件單元劃分專用內(nèi)存的方案,均在本發(fā)明保護范圍之內(nèi)。下面進行舉例說明。假設一個系統(tǒng)有512M內(nèi)存,a,b,c三個硬件單元各需要100M內(nèi)存,當它們工作時的最復雜情況下,會使用200M內(nèi)存。那么如果按照現(xiàn)有的傳統(tǒng)方法,會給這三個硬件單元共劃分300M內(nèi)存,因此留給操作系統(tǒng)的只剩212M內(nèi)存。而采用本發(fā)明實施例二的方法后,只需要為其中部分硬件單元:可以只為硬件單元a預留100M專用內(nèi)存,為內(nèi)存管理模塊預留100M內(nèi)存,當硬件單元b,或硬件單元c,或硬件單元b和c需要使用內(nèi)存時,可以向內(nèi)存管理模塊申請,也可以向a申請,從而可以滿足這三個硬件單元的使用,因此留給操作系統(tǒng)的內(nèi)存就會有312M了,節(jié)省了100M內(nèi)存。采用本發(fā)明實施例四的系統(tǒng),任意多個硬件單元,沒有劃分專用內(nèi)存的硬件單元可以向內(nèi)存管理模塊申請內(nèi)存,也可以向已被劃分內(nèi)存的硬件單元申請內(nèi)存,從而減少了操作系統(tǒng)給硬件單元提供的預留內(nèi)存,減少了浪費,節(jié)省了內(nèi)存;并且節(jié)省了至少一次拷貝,進而節(jié)省了時間和功耗,提高了系統(tǒng)性能。實施例五在一些可選的實施例中,提供了另外一種內(nèi)存管理方法,包括:操作系統(tǒng)啟動時,為部分硬件單元劃分專用內(nèi)存,用于對供硬件單元使用的內(nèi)存進行管理,而且不設置內(nèi)存管理模塊。當其它沒有被劃分內(nèi)存的一個或多個硬件單元需要使用內(nèi)存時,可以向已被劃分專用內(nèi)存的硬件單元申請內(nèi)存,該被劃分專用內(nèi)存的硬件單元將其專用內(nèi)存的部分內(nèi)存劃分給申請內(nèi)存的一個或多個硬件單元;當該申請內(nèi)存的一個或多個硬件單元用完該內(nèi)存后,釋放該內(nèi)存。在嵌入式系統(tǒng)中,系統(tǒng)的內(nèi)存被劃分為兩部分:一部分內(nèi)存是供操作系統(tǒng)使用的內(nèi)存,另一部分是供各個硬件單元使用的內(nèi)存。本發(fā)明實施例五中描述的被劃分專用內(nèi)存的部分硬件單元,對其它硬件單元使用內(nèi)存進行管理。系統(tǒng)將前面描述的“供各個硬件單元使用的內(nèi)存”劃分給該硬件單元專用內(nèi)存。另外,為部分硬件劃分的專用內(nèi)存的大小,是由操作系統(tǒng)預先根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值估算而確定的。操作系統(tǒng)需要提前估算好至少需要把多大內(nèi)存劃分給該硬件單元專用內(nèi)存,這個估算值就是根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值來確定的。通過估算,才能夠保證在一個或多個硬件單元的任何工作情況下,內(nèi)存都會足夠使用,還不會浪費。采用本發(fā)明實施例五的方法,任意多個硬件單元,沒有劃分專用內(nèi)存的硬件單元可以向已劃分有內(nèi)存的硬件單元申請內(nèi)存,從而減少了操作系統(tǒng)給硬件單元提供的預留內(nèi)存,減少了浪費,節(jié)省了內(nèi)存;并且節(jié)省了至少一次拷貝,進而節(jié)省了時間和功耗,提高了系統(tǒng)性能。實施例六在一些可選的實施例中,提供了另外一種嵌入式操作系統(tǒng)。如圖6所示,是本發(fā)明實施例四中提供的一種嵌入式系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)至少包括CPU51,N個硬件單元(第一硬件單元52、第二硬件單元53、第三硬件單元54……第N硬件單元55)和第一硬件單元專用內(nèi)存56。其中,為第一硬件單元52劃分的專用內(nèi)存,即第一硬件單元專用內(nèi)存56的大小,是由操作系統(tǒng)提前根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值估算而確定的。當?shù)诙布卧?3需要使用內(nèi)存時,向第一硬件單元52申請內(nèi)存,第一硬件單元52將第一硬件單元專用內(nèi)存56的部分內(nèi)存劃分給第二硬件單元53,當?shù)诙布卧?3使用完內(nèi)存時,釋放該內(nèi)存?;蛘?,第二硬件單元53和第三硬件單元54向第一硬件單元52申請內(nèi)存,第一硬件單元52將第一硬件單元專用內(nèi)存56的部分內(nèi)存劃分給第二硬件單元53和第三硬件單元54,當?shù)诙布卧?3和第三硬件單元54使用完內(nèi)存后,釋放該內(nèi)存。以上僅以兩種情況舉例說明,其他不是給所有硬件單元劃分專用內(nèi)存,而是僅給部分硬件單元劃分專用內(nèi)存,當一個或多個沒有被劃分專用內(nèi)存的硬件單元向已被劃分專用內(nèi)存的硬件單元申請內(nèi)存,即多個硬件單元共用內(nèi)存的方案,均在本發(fā)明保護范圍之內(nèi)。下面進行舉例說明。假設一個系統(tǒng)有512M內(nèi)存,a,b,c三個硬件單元各需要100M內(nèi)存,當系統(tǒng)在最復雜情況下,硬件單元會使用的內(nèi)存的最大值是200M內(nèi)存。那么如果按照現(xiàn)有的傳統(tǒng)方法,會給這三個硬件單元共劃分300M內(nèi)存,因此留給操作系統(tǒng)的只剩212M內(nèi)存。而采用本發(fā)明實施例二的方法后,只需要為其中部分硬件單元:硬件單元a和硬件單元b各預留100M內(nèi)存,當硬件單元c需要使用內(nèi)存時,向a或b申請,就可以滿足這三個硬件單元的使用;或者只為硬件單元a預留200M內(nèi)存,當硬件單元b,或硬件單元c或硬件單元b和c需要使用內(nèi)存時,向a申請,也可以滿足這三個硬件單元的使用,從而留給操作系統(tǒng)的內(nèi)存就會有312M了,節(jié)省了100M內(nèi)存。采用本發(fā)明實施例六的系統(tǒng),任意多個硬件單元,沒有劃分專用內(nèi)存的硬件單元可以向已被劃分內(nèi)存的硬件單元申請內(nèi)存,從而減少了操作系統(tǒng)給硬件單元提供的預留內(nèi)存,減少了浪費,節(jié)省了內(nèi)存;并且節(jié)省了至少一次拷貝,進而節(jié)省了時間和功耗,提高了系統(tǒng)性能。實施例七在一些可選的實施例中,提供了一種視頻數(shù)據(jù)處理系統(tǒng)。如圖7所述,是本發(fā)明實施例七中提供的一種視頻數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。本發(fā)明實施例七是相對于實施例一和二,在視頻數(shù)據(jù)處理系統(tǒng)中的具體應用。視頻數(shù)據(jù)處理系統(tǒng)包括:CPU61,視頻解碼單元63,用于將數(shù)據(jù)解碼成能夠用于顯示的數(shù)據(jù);圖像處理單元GPU64,用于將所述視頻解碼單元解碼后的數(shù)據(jù)進行處理;顯示單元65,用于將所述圖像處理單元處理后的數(shù)據(jù)傳輸?shù)斤@示器進行顯示;內(nèi)存管理模塊62,用于統(tǒng)一管理硬件單元所使用的內(nèi)存,當一個或多個硬件單元申請內(nèi)存時,對內(nèi)存進行劃分。當視頻解碼單元63需要使用內(nèi)存時,向內(nèi)存管理模塊62申請內(nèi)存;內(nèi)存管理模塊62將其部分內(nèi)存劃分給所述視頻解碼單元63;當視頻解碼單元63使用完內(nèi)存時,釋放該內(nèi)存。當圖像處理單元64需要使用內(nèi)存時,向內(nèi)存管理模塊62申請內(nèi)存;內(nèi)存管理模塊62將其部分內(nèi)存劃分給圖像處理單元64;當圖像處理單元64使用完內(nèi)存時,釋放該內(nèi)存。當視頻解碼單元63和圖像處理單元64同時需要使用內(nèi)存時,同時向內(nèi)存管理模塊62申請內(nèi)存;內(nèi)存管理模塊62將內(nèi)存劃分給視頻解碼單元63和圖像處理單元64;當視頻解碼單元63和圖像處理單元64使用完內(nèi)存時,釋放該內(nèi)存。內(nèi)存管理模塊62中的內(nèi)存,是由操作系統(tǒng)啟動后統(tǒng)一劃分的;為內(nèi)存管理模塊62劃分的內(nèi)存的大小,是由操作系統(tǒng)提前根據(jù)整個系統(tǒng)在最復雜情況下硬件單元會使用的內(nèi)存的最大值估算而確定的。在本發(fā)明實施例七中,不需要給視頻解碼單元63和GPU64分別劃分專用內(nèi)存,而是提前在內(nèi)核中設置好內(nèi)存管理模塊62,當操作系統(tǒng)啟動時,統(tǒng)一將內(nèi)存劃分給內(nèi)存管理模塊62。內(nèi)存管理模塊62用于統(tǒng)一管理硬件單元所使用的內(nèi)存,當一個或多個硬件單元申請內(nèi)存時,對內(nèi)存進行劃分。當視頻解碼單元63需要使用內(nèi)存時,通過視頻解碼單元63的驅(qū)動程序向內(nèi)存管理模塊62申請內(nèi)存;或者,當GPU64需要使用內(nèi)存時,通過GPU44的驅(qū)動程序向內(nèi)存管理模塊62申請內(nèi)存;或者,當視頻解碼單元63和GPU64同時需要使用內(nèi)存時,通過視頻解碼單元63的驅(qū)動程序和GPU64的驅(qū)動程序同時向內(nèi)存管理模塊62申請內(nèi)存,這樣我們就節(jié)省了視頻解碼單元63和GPU64各自單獨占用的專用內(nèi)存,從而節(jié)省了系統(tǒng)內(nèi)存,同時省去了一次數(shù)據(jù)拷貝,提高了系統(tǒng)性能。下面進行舉例說明。如果芯片系統(tǒng)總共有512M內(nèi)存,視頻解碼單元和GPU各自需要100M內(nèi)存,當視頻解碼單元和GPU共同工作時的最復雜情況下,會使用150M內(nèi)存,那么按照現(xiàn)有傳統(tǒng)的做法,將會給這兩個硬件單元一共預留200M內(nèi)存,留給操作系統(tǒng)的就只有312M內(nèi)存;而采用本發(fā)明實施例七的系統(tǒng)后,只需要給內(nèi)存管理模塊預留150M內(nèi)存就可以滿足視頻解碼模塊和GPU模塊的使用,因此留給操作系統(tǒng)362M內(nèi)存,從而用于硬件單元的內(nèi)存減少了50M。實施例八本發(fā)明實施例八是另一種在視頻數(shù)據(jù)處理系統(tǒng)中的具體應用。在一些可選的實施例中,提供了一種視頻數(shù)據(jù)處理系統(tǒng)。如圖8所示,不需要給視頻解碼單元劃分專用內(nèi)存,只給GPU劃分單獨的專用內(nèi)存:GPU專用內(nèi)存74。當視頻解碼單元71需要使用內(nèi)存時,通過視頻解碼單元71的驅(qū)動程序向GPU72的驅(qū)動程序申請內(nèi)存,這樣我們就節(jié)省了視頻解碼單元占用的內(nèi)存,從而節(jié)省了系統(tǒng)內(nèi)存,同時省去了一次數(shù)據(jù)拷貝,提高了系統(tǒng)性能。下面進行舉例說明。如果芯片系統(tǒng)總共有512M內(nèi)存,視頻解碼單元71占用100M內(nèi)存,GPU72占用100M內(nèi)存。那么留給操作系統(tǒng)使用的內(nèi)存就只有312M內(nèi)存。如果省去視頻解碼單元71的100M專用內(nèi)存,讓視頻解碼等單元71和GPU72共用一段內(nèi)存,顯然100M是不夠的。如果我們給GPU72劃分200M內(nèi)存,又無法真正節(jié)省內(nèi)存。但是,由于在大部分嵌入式系統(tǒng)中,在播放視頻時,GPU72不會占用太多內(nèi)存,因此GPU72也不需要使用全部100M內(nèi)存。因此,此時我們僅給GPU72劃分150M內(nèi)存,即GPU專用內(nèi)存74位150M,視頻解碼等單元71和GPU72共用該GPU專用內(nèi)存74,就能滿足視頻播放時,GPU72和視頻解碼單元71的總體內(nèi)存需求,因此與傳統(tǒng)方法相比,本發(fā)明實施例四的方法節(jié)省了50M內(nèi)存。實施例九本發(fā)明實施例九是又一種在視頻數(shù)據(jù)處理系統(tǒng)中的具體應用。在一些可選的實施例中,提供了另外一種視頻數(shù)據(jù)處理系統(tǒng)。如圖9所示,也可以不給GPU82劃分專用內(nèi)存,只給視頻解碼單元81劃分單獨的專用內(nèi)存:視頻解碼單元專用內(nèi)存84。當GPU82需要使用內(nèi)存時,通過GPU82的驅(qū)動程序向視頻解碼單元81的驅(qū)動程序申請內(nèi)存,這樣我們就節(jié)省了GPU占用的內(nèi)存,從而節(jié)省了系統(tǒng)內(nèi)存,同時省去了一次數(shù)據(jù)拷貝,提高了系統(tǒng)性能。下面進行舉例說明。如果芯片系統(tǒng)總共有512M內(nèi)存,視頻解碼單元81占用100M內(nèi)存,GPU82占用100M內(nèi)存。那么留給操作系統(tǒng)使用的內(nèi)存就只有312M內(nèi)存。如果省去視頻解碼單元81的100M專用內(nèi)存,讓視頻解碼等單元81和GPU82共用一段內(nèi)存,顯然100M是不夠的。如果我們給GPU82劃分200M內(nèi)存,又無法真正節(jié)省內(nèi)存。但是,由于在大部分嵌入式系統(tǒng)中,在播放視頻時,GPU82不會占用太多內(nèi)存,因此GPU82也不需要使用全部100M內(nèi)存。因此,此時我們僅給視頻解碼單元81劃分150M內(nèi)存,視頻解碼等單元81和GPU82共用該視頻解碼單元專用內(nèi)存84,就能滿足視頻播放時,GPU82和視頻解碼單元81的總體內(nèi)存需求,因此與傳統(tǒng)方法相比,本發(fā)明實施例四的方法節(jié)省了50M內(nèi)存。因此,采用本發(fā)明實施例一至九提供的內(nèi)存管理的技術(shù)方案,減少了操作系統(tǒng)的給硬件單元提供的預留內(nèi)存,減少了浪費;并且節(jié)省了至少一次拷貝,進而節(jié)省了時間和功耗,提高了系統(tǒng)性能。除非另外具體陳述,術(shù)語比如處理、計算、運算、確定、顯示等等可以指一個或更多個處理或者計算系統(tǒng)、或類似設備的動作和/或過程,所述動作和/或過程將表示為處理系統(tǒng)的寄存器或存儲器內(nèi)的物理(如電子)量的數(shù)據(jù)操作和轉(zhuǎn)換成為類似地表示為處理系統(tǒng)的存儲器、寄存器或者其他此類信息存儲、發(fā)射或者顯示設備內(nèi)的物理量的其他數(shù)據(jù)。信息和信號可以使用多種不同的技術(shù)和方法中的任何一種來表示。例如,在貫穿上面的描述中提及的數(shù)據(jù)、指令、命令、信息、信號、比特、符號和碼片可以用電壓、電流、電磁波、磁場或粒子、光場或粒子或者其任意組合來表示。應該明白,公開的過程中的步驟的特定順序或?qū)哟问鞘纠苑椒ǖ膶嵗;谠O計偏好,應該理解,過程中的步驟的特定順序或?qū)哟慰梢栽诓幻撾x本公開的保護范圍的情況下得到重新安排。所附的方法權(quán)利要求以示例性的順序給出了各種步驟的要素,并且不是要限于所述的特定順序或?qū)哟?。在上述的詳細描述中,各種特征一起組合在單個的實施方案中,以簡化本公開。不應該將這種公開方法解釋為反映了這樣的意圖,即,所要求保護的主題的實施方案需要比清楚地在每個權(quán)利要求中所陳述的特征更多的特征。相反,如所附的權(quán)利要求書所反映的那樣,本發(fā)明處于比所公開的單個實施方案的全部特征少的狀態(tài)。因此,所附的權(quán)利要求書特此清楚地被并入詳細描述中,其中每項權(quán)利要求獨自作為本發(fā)明單獨的優(yōu)選實施方案。本領(lǐng)域技術(shù)人員還應當理解,結(jié)合本文的實施例描述的各種說明性的邏輯框、模塊、電路和算法步驟均可以實現(xiàn)成電子硬件、計算機軟件或其組合。為了清楚地說明硬件和軟件之間的可交換性,上面對各種說明性的部件、框、模塊、電路和步驟均圍繞其功能進行了一般地描述。至于這種功能是實現(xiàn)成硬件還是實現(xiàn)成軟件,取決于特定的應用和對整個系統(tǒng)所施加的設計約束條件。熟練的技術(shù)人員可以針對每個特定應用,以變通的方式實現(xiàn)所描述的功能,但是,這種實現(xiàn)決策不應解釋為背離本公開的保護范圍。用于執(zhí)行本申請所述功能的通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或者晶體管邏輯、分立硬件組件或者其任意組合,可以實現(xiàn)或執(zhí)行結(jié)合本文的實施例所描述的各種說明性的邏輯框圖、模塊和電路。通用處理器可以是微處理器,或者,該處理器也可以是任何常規(guī)的處理器、控制器、微控制器或者狀態(tài)機。處理器也可能實現(xiàn)為計算設備的組合,例如,DSP和微處理器的組合、多個微處理器、一個或多個微處理器與DSP內(nèi)核的結(jié)合,或者任何其它此種結(jié)構(gòu)。結(jié)合本文的實施例所描述的方法或者算法的步驟可直接體現(xiàn)為硬件、由處理器執(zhí)行的軟件模塊或其組合。軟件模塊可以位于RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、移動磁盤、CD-ROM或者本領(lǐng)域熟知的任何其它形式的存儲介質(zhì)中。一種示例性的存儲介質(zhì)連接至處理器,從而使處理器能夠從該存儲介質(zhì)讀取信息,且可向該存儲介質(zhì)寫入信息。當然,存儲介質(zhì)也可以是處理器的組成部分。處理器和存儲介質(zhì)可以位于ASIC中。該ASIC可以位于用戶終端中。當然,處理器和存儲介質(zhì)也可以作為分立組件存在于用戶終端中。為使本領(lǐng)域內(nèi)的任何技術(shù)人員能夠?qū)崿F(xiàn)或者使用本發(fā)明,上面對所公開實施例進行了描述。對于本領(lǐng)域技術(shù)人員來說;這些實施例的各種修改方式都是顯而易見的,并且本文定義的一般原理也可以在不脫離本公開的精神和保護范圍的基礎(chǔ)上適用于其它實施例。因此,本公開并不限于本文給出的實施例,而是與本申請公開的原理和新穎性特征的最廣范圍相一致。對于軟件實現(xiàn),本申請中描述的技術(shù)可用執(zhí)行本申請所述功能的模塊(例如,過程、函數(shù)等)來實現(xiàn)。這些軟件代碼可以存儲在存儲器單元并由處理器執(zhí)行。存儲器單元可以實現(xiàn)在處理器內(nèi),也可以實現(xiàn)在處理器外,在后一種情況下,它經(jīng)由各種手段以通信方式耦合到處理器,這些都是本領(lǐng)域中所公知的。而且,本文所述的各個方面或特征可以作為使用標準的程序設計和/或工程技術(shù)的方法、裝置或制品來實現(xiàn)。本文所使用的術(shù)語“制品”是要包括可以從任何計算機可讀的設備、載波或介質(zhì)來訪問的計算機程序。例如,計算機可讀的介質(zhì)可以包括但不限于磁存儲設備(例如,硬盤、軟盤、磁帶等)、光盤(例如,緊湊光盤(CD)、數(shù)字通用光盤(DVD)等)、智能卡以及閃速存儲設備(例如,EPROM、卡、棒、鑰匙驅(qū)動器等)。此外,本文描述的各種存儲介質(zhì)表示為用于存儲信息的一個或多個設備和/或其它機器可讀介質(zhì)。術(shù)語“機器可讀介質(zhì)”包括但不限于能夠存儲、包含和/或攜帶指令和/或數(shù)據(jù)的無線信道和各種其它介質(zhì)。上文的描述包括一個或多個實施例的舉例。當然,為了描述上述實施例而描述部件或方法的所有可能的結(jié)合是不可能的,但是本領(lǐng)域普通技術(shù)人員應該認識到,各個實施例可以做進一步的組合和排列。因此,本文中描述的實施例旨在涵蓋落入所附權(quán)利要求書的保護范圍內(nèi)的所有這樣的改變、修改和變型。此外,就說明書或權(quán)利要求書中使用的術(shù)語“包含”,該詞的涵蓋方式類似于術(shù)語“包括”,就如同“包括,”在權(quán)利要求中用作銜接詞所解釋的那樣。此外,使用在權(quán)利要求書的說明書中的任何一個術(shù)語“或者”是要表示“非排它性的或者”。