欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種管理存儲器的方法及一種存儲器的制作方法

文檔序號:6554720閱讀:245來源:國知局
專利名稱:一種管理存儲器的方法及一種存儲器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及存儲器的使用,更具體地說,涉及一種移動多媒體處理器的存儲器管理的方法。
背景技術(shù)
移動通信改變了人們交流的方式,移動電話已經(jīng)從奢侈品變成日常生活的必需品?,F(xiàn)在,使用移動電話已是社會形勢所趨,而不受地域或技術(shù)的限制了。語音通信滿足了通信的基本需求,而移動語音通信則繼續(xù)進一步滲透到日常生活的各個領(lǐng)域。利用移動互聯(lián)網(wǎng),各種集成的移動多媒體應(yīng)用將引發(fā)移動通信的下一次革命。
提供多種高速訪問技術(shù)的3G(第三代)蜂窩網(wǎng)絡(luò)以及為利用這些技術(shù)的而專門設(shè)計的移動電話,滿足了集成多媒體應(yīng)用的需求,該集成多媒體應(yīng)用支持采用高級壓縮標準的TV和音頻應(yīng)用、高分辨率游戲應(yīng)用、音樂接口、外圍接口等。隨著芯片設(shè)計者采用壓縮技術(shù)和更高的帶寬以傳送更多信息,處理需求也在增加。3G無線應(yīng)用支持384Kbits/s至2Mbits/s的速率,使芯片設(shè)計者能夠為無線系統(tǒng)設(shè)計出具有多媒體能力、品質(zhì)優(yōu)良、干擾降低和覆蓋區(qū)域更廣的產(chǎn)品。
隨著移動多媒體服務(wù)數(shù)量上和用途上的增長,對蜂窩網(wǎng)絡(luò)運營商而言,能耗、網(wǎng)絡(luò)容量的成本效率優(yōu)化和服務(wù)質(zhì)量(QoS)等因素將變得更重要。這些因素可通過謹慎的網(wǎng)絡(luò)規(guī)劃和操作、發(fā)送方法的改進、接收技術(shù)和芯片集成方案的改良來解決。為此,電信公司需要一種技術(shù),該技術(shù)能夠為移動多媒體應(yīng)用提供更高的下行鏈路吞吐量,進一步,該技術(shù)能夠為移動多媒體應(yīng)用服務(wù)的消費者提供更高QoS和速度。另外,也需要提升移動設(shè)備的能力以處理各種移動多媒體應(yīng)用。為達到以上目的,一種方式是采用更強大的處理器,另外一種方式是更有效地使用可利用的存儲器。
本文的后續(xù)部分將結(jié)合附圖對本發(fā)明進行闡述。通過把本發(fā)明的一些方面與上述的常規(guī)數(shù)字信號處理實現(xiàn)方法比較,對本領(lǐng)域的技術(shù)人員來說,常規(guī)或傳統(tǒng)方法的局限性和缺點是顯而易見的。

發(fā)明內(nèi)容
本發(fā)明提供了一種為移動多媒體處理器管理存儲器的系統(tǒng)和/或方法,如附圖所示和/或結(jié)合至少一幅附圖所描述,以及權(quán)利要求中的更全面的闡述。
根據(jù)本發(fā)明的一方面,提供一種管理存儲器的方法,包括在移動多媒體處理器芯片中接收多個存儲器請求;通過從以下存儲區(qū)至少之一中分配存儲器來處理所述多個存儲器請求至少一個片載存儲區(qū)和至少一個片外存儲區(qū);和所述分配存儲器基于所述多個存儲器請求中的每個存儲器請求的優(yōu)先級以及至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值而進行。
優(yōu)選地,所述方法包括基于新的應(yīng)用程序動態(tài)地確定所述至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值的新值。
優(yōu)選地,所述方法包括通過監(jiān)視至少一個當前應(yīng)用程序的至少一個軟件進程來動態(tài)地確定所述至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值的新值。
優(yōu)選地,所述方法包括為新的應(yīng)用程序的至少一個軟件進程的多個存儲器請求中的每個存儲器請求動態(tài)地確定新的優(yōu)先級。
優(yōu)選地,所述方法包括通過監(jiān)視至少一個當前應(yīng)用程序中的至少一個軟件進程,為所述至少一個軟件進程的多個存儲器請求中的至少一個存儲器請求動態(tài)地確定新的優(yōu)先級。
優(yōu)選地,所述方法包括指定所述至少一個片載存儲區(qū)和至少一個片外存儲區(qū)中的一個以從中分配存儲器。
優(yōu)選地,所述方法包括把所分配的存儲器中的數(shù)據(jù)移動到所述至少一個片載存儲區(qū)和所述至少一個片外存儲區(qū)上不同的存儲器中。
優(yōu)選地,所述方法包括鎖定所述數(shù)據(jù)以防止該數(shù)據(jù)被移動。
優(yōu)選地,所述方法包括解鎖所述數(shù)據(jù)以允許移動該數(shù)據(jù)。
優(yōu)選地,當所述數(shù)據(jù)處于解鎖狀態(tài)時,除移動所述數(shù)據(jù)外,所述數(shù)據(jù)是不可進行存取處理的。
根據(jù)本發(fā)明的一方面,提供一種可機讀的存儲器,其上存儲有計算機程序,所述計算機程序包含至少一個用于為移動多媒體處理器管理存儲器的代碼段,當機器執(zhí)行該至少一個代碼段時,該機器進行以下步驟在移動多媒體處理器芯片中接收多個存儲器請求;通過從以下存儲區(qū)至少之一中分配存儲器來處理所述多個存儲器請求至少一個片載存儲區(qū)和至少一個片外存儲區(qū);和所述分配存儲器基于所述多個存儲器請求中的每個存儲器請求的優(yōu)先級以及至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值而進行。
優(yōu)選地,所述可機讀的存儲器還包括用于基于新的應(yīng)用程序動態(tài)地確定所述至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值的新值的代碼段。
優(yōu)選地,所述可機讀的存儲器還包括用于通過監(jiān)視至少一個當前應(yīng)用程序中的至少一個軟件進程來動態(tài)地確定所述至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值的新值的代碼段。
優(yōu)選地,所述可機讀的存儲器包括用于為新的應(yīng)用程序的至少一個軟件進程的多個存儲器請求中每個存儲器請求動態(tài)地確定新的優(yōu)先級的代碼段。
優(yōu)選地,所述可機讀的存儲器包括用于通過監(jiān)視至少一個當前應(yīng)用程序中的至少一個軟件進程,為所述至少一個軟件進程的多個存儲器請求中的至少一個存儲器請求動態(tài)地確定的新的優(yōu)先級的代碼段。
優(yōu)選地,所述可機讀的存儲器包括用于指定所述至少一個片載存儲區(qū)或至少一個片外存儲區(qū)中的一個以從中分配存儲器的代碼段。
優(yōu)選地,所述可機讀的存儲器包括用于把所分配的存儲器中的數(shù)據(jù)移動到所述至少一個片載存儲區(qū)和所述至少一個片外存儲區(qū)上不同的存儲器中的代碼段。
優(yōu)選地,所述可機讀的存儲器包括用于鎖定所述數(shù)據(jù)以防止該數(shù)據(jù)被移動的代碼段。
優(yōu)選地,所述可機讀的存儲器包括用于解鎖所述數(shù)據(jù)以允許移動該數(shù)據(jù)的代碼段。
優(yōu)選地,當所述數(shù)據(jù)處于解鎖狀態(tài)時,除移動所述數(shù)據(jù)外,所述數(shù)據(jù)是不可進行存取處理的。
根據(jù)以下的描述和附圖,可以更深入地了解本發(fā)明的各種優(yōu)點、各個方面、創(chuàng)新特征、及其實施例細節(jié)。


下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中圖1a根據(jù)是本發(fā)明實施例的典型的移動多媒體系統(tǒng)的示意框圖;圖1b根據(jù)是本發(fā)明實施例的典型的移動多媒體處理器的示意框圖;圖2根據(jù)是本發(fā)明實施例的處理器可用的存儲器的示意框圖;圖3是根據(jù)本發(fā)明實施例的采用軟件進程的優(yōu)先級進行存儲器分配的流程圖;圖4是根據(jù)本發(fā)明實施例的設(shè)定全局存儲器分配優(yōu)先級閾值的程序(routine)的流程圖;圖5是根據(jù)本發(fā)明實施例的基于優(yōu)先級的存儲器請求的程序的流程圖。
另外,可以為一個新的應(yīng)用中的至少一個軟件進程的每一個存儲器請求動態(tài)地確定存儲器請求優(yōu)先級的新值??杀O(jiān)控至少一個當前應(yīng)用中的至少一個軟件進程以便為至少一個存儲器請求動態(tài)地確定存儲器請求優(yōu)先級的新值??梢灾付ㄖ辽僖粋€片載存儲器區(qū)和至少一個片外存儲器區(qū),以從中分配存儲器??梢园褦?shù)據(jù)從已分配的存儲器上移到不同的存儲區(qū)??梢枣i定數(shù)據(jù)以防止被移動;或者可以解鎖數(shù)據(jù)以允許移動。數(shù)據(jù)在解鎖狀態(tài)下,除移動該數(shù)據(jù)外不可對該數(shù)據(jù)進行存取處理。
對于被認為是重要的因而具有較高優(yōu)先級的存儲器請求,本發(fā)明為其分配較高速的片載存儲器,該較高速是相對于較低速的片外存儲器而言。用于分配存儲器的運算法則可基于多種因素,如所請求的存儲器的大小、是否采用高速緩存存儲器(cache)、是否采用DMA(直接存儲器存取)和單位時間內(nèi)預(yù)期訪問存儲器的次數(shù)等。
圖1a根據(jù)是本發(fā)明實施例的典型的移動多媒體系統(tǒng)的示意框圖。如圖1a所示,移動多媒體系統(tǒng)105包括移動多媒體設(shè)備105a、TV 101h和PC 101k和外接相機101m、外接存儲器101n、外接LCD顯示器101p。移動多媒體設(shè)備105a可以是蜂窩電話或其他手持通信設(shè)備或數(shù)據(jù)處理設(shè)備。移動多媒體設(shè)備105a可包括移動多媒體處理器(MMP)101a、天線101d、音頻模塊101s、射頻(RF)塊101e、基帶處理模塊(BB)101f、LCD顯示器101b、鍵盤101c和相機101g。
MMP 101a可包括適當?shù)碾娐?、邏輯?或代碼,可用于執(zhí)行移動多媒體設(shè)備105a的視頻和/或多媒體處理。MMP 101a還包括多個集成接口,所述集成接口用于支持一個或多個連接到移動多媒體設(shè)備105a的外接設(shè)備。例如,MMP101a支持與TV 101h、PC 101k、外接相機101m、外接存儲器101n和外接LCD顯示器101p的連接。
在操作上,移動多媒體設(shè)備可通過天線101d接收信號。所接收的信號由RF模塊101e處理,RF信號由基帶處理模塊101f轉(zhuǎn)換成基帶信號。接著,基帶信號由MMP 101a處理。還可通過集成相機101g、TV 101h、PC 101k和/或外接相機101m接收音頻和/或視頻信號。處理過程中,MMP 101a可利用外接存儲器101n來存儲處理后的數(shù)據(jù)。例如,處理后的音頻數(shù)據(jù)可傳遞給音頻模塊101s;處理后的視頻數(shù)據(jù)可傳遞給LCD 101b或外接LCD 101p。鍵盤101c用于輸入處理指令和/或其他數(shù)據(jù),MMP 101a需根據(jù)這些指令或數(shù)據(jù)進行音頻或視頻處理。
圖1b根據(jù)是本發(fā)明實施例的典型的移動多媒體處理器的示意框圖。如圖1b所示,移動多媒體處理器102包括適當?shù)倪壿?、電路?或代碼,用于執(zhí)行手持多媒體設(shè)備的視頻和/或多媒體處理。例如,可通過采用外圍設(shè)備整合和視頻處理核心,可為視頻錄制/重放、移動TV和3D移動游戲設(shè)計和優(yōu)化移動多媒體處理器102。移動多媒體處理器102可包括視頻處理核心103、RAM(隨機存儲器)104、模擬模塊106、DMA控制器163、音頻接口(I/F)142、記憶棒(memory stick)接口144、SD卡接口146、JTAG(結(jié)構(gòu)聯(lián)合測試行動組)接口148、TV輸出接口150、USB接口152、相機接口154、主機接口129和I2C(內(nèi)置集成電路,integrated-integrated circuit)接口156。移動多媒體處理器102還包括串行外圍接口(SPI)157、通用異步接收/發(fā)送(UART)接口159、通用輸入/輸出(GPIO)引腳(pin)164、顯示控制器162、外部存儲器接口158和第二外部存儲器接口160。
視頻處理核心103包括適當?shù)碾娐贰⑦壿嫼?或代碼,可用于執(zhí)行數(shù)據(jù)的視頻處理。RAM 104包括適當?shù)倪壿嫛㈦娐泛?或代碼,用于存儲片載數(shù)據(jù)如視頻數(shù)據(jù)。例如,在本發(fā)明的一個實施例中,RAM 104可用于存儲10M的片載數(shù)據(jù)。片載RAM 104的大小由成本或其他因素如芯片大小決定。
模擬模塊106包括開關(guān)模式電源(SMPS)模塊和鎖相環(huán)(PLL)模塊。另外,模擬模塊106可包括片載SMPS控制器,該SMPS控制器用于產(chǎn)生核心電壓(core voltage)。例如,該核心電壓可根據(jù)移動多媒體處理器102的速度需求用軟件設(shè)定,還能控制電源管理。
在本發(fā)明的一個典型實施例中,正常的核心工作電壓范圍約為0.8伏至1.2伏,休眠模式下可降到約0.6伏。模擬模塊106可包括多個PLL,用于生成195kHz至200MHz的時鐘,例如為外部設(shè)備?;趹?yīng)用的類型,可采用其他的電壓值和時鐘速度。例如,一種應(yīng)用可以是播放MP3文件或視頻文件。移動多媒體處理器102包括多個電源工作模式,如運行、待機、休眠和關(guān)機模式。根據(jù)本發(fā)明的實施例,移動多媒體處理器102包括旁路模式(bypass mode),在關(guān)機模式下,該旁路模式允許主機訪問外圍設(shè)備映射的存儲器。在旁路模式下,移動多媒體處理器102在機器正常運行時直接控制顯示器;在機器待機模式下使主機能夠保持顯示。
音頻模塊108包括適當?shù)倪壿?、電路?或代碼,通過內(nèi)置集成音頻電路(inter-IC sound,簡稱I2S)、脈沖編碼調(diào)制(PCM)或音頻編碼(AC’97)接口142或其他適當?shù)慕涌谂c移動多媒體處理器102通信。在AC’97和/或I2S接口情況下,可用適當?shù)囊纛l控制器、處理器和/或電路以主要模式或附屬模式分別輸出AC’97和/或I2S音頻。在PCM接口的情況下,可用適當?shù)囊纛l控制器、處理器和/或電路輸入和輸出電話信號及高質(zhì)量的立體音頻。PCM音頻控制器、處理器和/或電路包括獨立的發(fā)送和接收先入先出(FIFO)緩沖器,可采用DMA以進一步減少處理器的開銷。音頻模塊108包括音頻輸入端口、音頻輸出端口和揚聲器/麥克風接口(圖1b中沒有示出)。
移動多媒體設(shè)備100包括至少一個便攜式存儲器輸入/輸出(I/O)模塊。有關(guān)這點,例如記憶棒模塊110包括適當?shù)倪壿?、電路?或代碼,通過記憶棒接口144與移動多媒體處理器102通信。例如SD卡模塊112包括適當?shù)倪壿?、電路?或代碼,通過SD輸入/輸出(I/O)接口146與移動多媒體處理器102通信。例如多媒體卡(MMC)也可用來通過SD I/O接口146與移動多媒體處理器102通信。移動多媒體設(shè)備100還可包括其他的便攜式存儲器I/O模塊如XD I/D卡。
例如,調(diào)試模塊114包括適當?shù)倪壿?、電路?或代碼,通過JTAG接口148與移動多媒體處理器102通信。調(diào)試模塊114用于訪問移動多媒體處理器102的地址空間和通過仿真接口執(zhí)行邊界掃描。還可以采用其他的測試訪問端口(TAP),比如可采用PAL/NTSC制式TV輸出接口150與TV通信,采用USB 1.1或其他變體、從端口(slave port)接口152與PC通信。相機120和/或122包括適當?shù)倪壿?、電路?或代碼,通過多格式/原始CCIR(國際無線電咨詢委員會)601相機接口154與移動多媒體處理器102通信。例如,相機接口154可采用開窗術(shù)(windowing)和下取樣(sub-sampling)功能把移動多媒體處理器102與移動TV前端連接。
移動多媒體處理器102可包括多個串行接口,如USB接口152、I2C主接口156、串行外設(shè)接口(SPI)157、用于藍牙或IRDA(紅外數(shù)據(jù)協(xié)會)的UART接口159。I2C主接口156包括適當?shù)倪壿?、電路?或代碼,用于控制圖像傳感器,可與智能電池(smart battery)或其他外圍設(shè)備連接。SPI主接口157包括適當?shù)倪壿嫛㈦娐泛?或代碼,用于控制圖像傳感器。提供兩種芯片選擇,在帶有中斷的輪詢模式(polled mode)下工作或通過DMA控制器163。另外,移動多媒體處理器102還包括多個GPIO引腳164,用于用戶自定義輸入輸出或連接內(nèi)部的外圍設(shè)備。顯示控制器162包括適當?shù)倪壿?、電路?或代碼,用于支持具有XGA分辨率的多種顯示模式,以及處理8/9/16/18/21位的視頻數(shù)據(jù)。
例如,基帶閃存(flash memory)124通過8/16位并行主機接口129從移動多媒體處理器102處接收數(shù)據(jù)。主機接口129用于提供具有獨立地址的雙通道和數(shù)據(jù)寄存器,通過所述數(shù)據(jù)寄存器主機處理器能夠直接讀寫移動多媒體處理器102的存儲器空間。基帶處理模塊126包括適當?shù)倪壿?、電路?或代碼,用于把RF信號轉(zhuǎn)換為基帶信號,并通過主機接口129把基帶信號傳遞給移動多媒體處理器102。RF處理模塊130包括適當?shù)倪壿?、電路?或代碼,通過天線132接收信號,并把接收的RF信號傳遞給基帶處理模塊126。主機接口129包括具有省電(power efficient)旁路模式的雙軟件通道。
主LCD 134通過顯示控制器162接收來自移動多媒體處理器102和/或第二外接存儲器接口160的數(shù)據(jù)。顯示控制器162包括適當?shù)倪壿?、電路?或代碼,用于驅(qū)動內(nèi)置的TV輸出功能,或被用于連接一系列LCD。顯示控制器162可用于支持一系列屏幕緩沖格式并采用DMA直接訪問屏幕緩沖以提高視頻處理核心103的視頻處理效率。NTSC和PAL光柵格式都可通過驅(qū)動TV輸出的顯示控制器162而生成。其他格式如SECAM也被控制器162支持。
在本發(fā)明的一個實施例中,顯示控制器162用于支持多個顯示器,包括隔行掃描顯示器如TV和/或非隔行掃描顯示器如LCD。顯示控制器162還能識別顯示器類型并把顯示器類型傳遞給DMA控制器163。就此而言,DMA控制器163以隔行或非隔行方式讀取數(shù)據(jù),并通過顯示控制器162把讀取的數(shù)據(jù)傳遞給與移動多媒體處理器102連接的隔行顯示器或非隔行顯示器。
替用LCD 136包括適當?shù)倪壿?、電路?或代碼,通過第二外接存儲器接口與移動多媒體處理器102通信。移動多媒體處理器102可包括RGB外接數(shù)據(jù)總線。移動多媒體處理器102根據(jù)象素級插值和可配置的刷新率調(diào)節(jié)圖像輸出。
可選閃存138包括適當?shù)倪壿嫛㈦娐泛?或代碼,通過外接存儲器接口158與移動多媒體處理器102通信??蛇xSDRAM(單通道隨機存儲器)140包括適當?shù)倪壿嫛㈦娐泛?或代碼,通過外接存儲器接口158接收來自移動多媒體處理器102的數(shù)據(jù)。移動多媒體處理器102通過外接存儲器接口158連接外接SDRAM 140、SRAM、閃存138和/或外接外圍設(shè)備。SDRAM 140和其他異步設(shè)備的控制和時序信息可通過移動多媒體處理器102進行配置。
移動多媒體處理器102還包括第二存儲器接口160,以連接存儲器映象的(memory-mapped)LCD和外接外圍設(shè)備。第二存儲器接口160包括適當?shù)倪壿?、電路?或代碼,可用于將移動多媒體處理器102連接到低速設(shè)備,而不連累外接存儲器的訪問速度。第二存儲器接口160提供16條數(shù)據(jù)線(dataline),如6條芯片選擇/地址線以及為啟動、訪問和保留(hold)時間進行計時的可編程總線。移動多媒體處理器102適于為包括NAND啟動(boot)和高速DMA在內(nèi)的NAND/NOR閃存提供支持。
在操作上,移動多媒體處理器102支持多種顯示格式,所述顯示格式用于顯示處理后的視頻數(shù)據(jù)。例如,隔行和/或非隔行外接顯示器可通過顯示控制器162與移動多媒體處理器102連接。顯示控制器162把外接顯示器的類型傳遞給DMA控制器163。接著,DMA控制器163訪問片載RAM 104并以對應(yīng)于外接顯示器類型的隔行或非隔行方式讀取處理后的視頻信息。作為移動多媒體系統(tǒng)105正常運行的一部分,將為移動多媒體處理器102執(zhí)行的多個軟件進程分配運行時間和分配存儲器單元。
圖2根據(jù)是本發(fā)明實施例的處理器可利用的存儲器的示意框圖。圖中所示為處理器模塊200和片外存儲區(qū)210和215。處理器模塊200可以是圖1b中所示的移動多媒體處理器102。處理器模塊200包括高速緩存區(qū)202和片載存儲區(qū)204。高速緩存區(qū)202包括適當?shù)倪壿?、電路?或代碼,用于預(yù)測下一步需要的在片外存儲區(qū)210和215中的信息的地址范圍。高速緩存區(qū)202可從預(yù)測的地址范圍中讀取信息并把片載信息存儲到高速緩存區(qū)202中。這就節(jié)省了信息訪問時間,因為訪問高速緩存區(qū)202中的信息比訪問片外存儲區(qū)210和/或215中的信息快。
片載存儲區(qū)204包括適當?shù)倪壿嫼?或電路,用于存儲信息,如數(shù)據(jù)和/或指令,并按照讀指令提供所存儲的信息。片載存儲區(qū)204可包括單一類型的存儲器如動態(tài)隨機存儲器(DRAM)、靜態(tài)隨機存儲器(SRAM)或只讀存儲器(ROM)。片載存儲區(qū)204還可以包括多種類型的存儲器,其中每種存儲器都有自己的地址范圍并獨立于其他類型存儲器而被訪問。物理上,各種類型的存儲器,甚至同類存儲器的不同部分(section),在芯片上具有不同的物理位置。本申請中,所提及的片載存儲區(qū)204所涉及的存儲器類型是能讀寫的存儲器,如DRAM或SRAM。片外存儲區(qū)210和215包括適當?shù)倪壿嫼?或電路,用于存儲信息,如數(shù)據(jù)和/或指令,也可按照讀指令提供所存儲的信息。例如,片外存儲區(qū)210和215可以是DRAM和/或SRAM。
在操作上,處理器模塊200把信息如靜態(tài)數(shù)據(jù)和指令加載到支持最快訪問時間的存儲器。所述最快訪問時間可以是平均訪問時間。所述訪問時間取決于存儲器的物理特性,例如存儲器的位置、讀和/或?qū)懘螖?shù)。訪問時間還依賴于是否采用緩存系統(tǒng)。在這點上,一些信息被存儲在具有快速訪問時間的片載存儲區(qū)204中。其他信息可存儲在片外存儲區(qū)210和/或215中,片外存儲區(qū)210和/或215的訪問時間比片載存儲區(qū)202的訪問時間慢。不過,可通過高速緩存區(qū)202訪問存儲在片外存儲區(qū)210和/或215中的信息,所述高速緩存區(qū)202能設(shè)法預(yù)測下一步需要的信息區(qū)(block)并預(yù)先讀取這些信息區(qū)。
運行時,請求存儲器的軟件進程可以從片載存儲區(qū)204或從片外存儲區(qū)210和/或215中分配存儲器。但是,在一些情況下,高速緩存會由于讀取不需要的信息而重復(fù)出現(xiàn)“顛簸”。例如,如果需要的信息偏移的地址范圍大于高速緩存一次讀取的字節(jié)數(shù),或者最近丟棄的緩存信息需要從片外存儲區(qū)中讀取時,會出現(xiàn)這種現(xiàn)象。高速緩存的這種顛簸降低了高速緩存系統(tǒng)的效率,在極端的情況下,系統(tǒng)性能比不采用高速緩存系統(tǒng)時還差。雖然圖示中片外存儲器為兩塊,即片外存儲區(qū)210和215,但本發(fā)明不受該數(shù)量的限制。片外存儲區(qū)的數(shù)量可以不是2個。
圖3是根據(jù)本發(fā)明實施例的優(yōu)先存儲器分配的流程圖。如圖所示,步驟300中,為每一個運行狀態(tài)的進程的存儲器請求確定和設(shè)定優(yōu)先級。步驟310中,確定和設(shè)定全局存儲器分配優(yōu)先閾值。步驟320中,根據(jù)合適的運算法則把存儲器請求的優(yōu)先級與全局存儲器分配優(yōu)先閾值進行比較,并給相應(yīng)的存儲器請求分配存儲器。步驟330中,監(jiān)視需要改變?nèi)执鎯ζ鞣峙鋬?yōu)先閾值和/或存儲器請求優(yōu)先級的情形(condition)。步驟340中,利用步驟330中所監(jiān)視的情形改變現(xiàn)有的全局存儲器分配優(yōu)先閾值和/或存儲器請求優(yōu)先級。
圖3所示的步驟300到步驟340可用于運行(run-time)存儲器分配。步驟300中,確定每個存儲器請求的優(yōu)先級并動態(tài)地給存儲器請求分配優(yōu)先級。例如,本發(fā)明的一個實施例中,給存儲器請求設(shè)定一個優(yōu)先級,該優(yōu)先級與1秒內(nèi)訪問所請求的緩沖器的期望次數(shù)成比例。對于全部被請求的存儲緩沖器如視頻緩沖器是連續(xù)地訪問的應(yīng)用,本發(fā)明的一個實施例中把單位時間內(nèi)(如1秒內(nèi))對整個緩沖器讀或?qū)懙目偞螖?shù)設(shè)為優(yōu)先級。單位時間內(nèi)對整個緩沖器讀或?qū)懙目偞螖?shù)可通過常規(guī)測試、仿真或其他系統(tǒng)分析來經(jīng)驗地確定。本發(fā)明的另一個實施例中,采用的運算法則是,優(yōu)先級與單位時間內(nèi)(如1秒內(nèi))整個緩沖器中被訪問的字節(jié)數(shù)成比例。
步驟310中,可以動態(tài)地確定和設(shè)定全局存儲器分配優(yōu)先閾值。例如,本發(fā)明的一個實施例中,設(shè)定全局存儲器分配優(yōu)先閾值的運算法則能夠使某可能被執(zhí)行的特定應(yīng)用可能請求的存儲緩沖器的數(shù)量達到最多。例如,片載存儲區(qū)(如圖2中的片載存儲區(qū)204)中有100千字節(jié)(KB)片載存儲器。有8個期望的存儲器分配請求,其中4個期望的存儲器分配請求都是請求20KB的存儲緩沖器,優(yōu)先級分別為600、300、200和150。另外4個優(yōu)先級都是60,分別請求30KB、35KB、115KB和125KB的存儲緩沖器。
在上述假設(shè)中,能夠分配到100KB的片載存儲區(qū)204上的存儲緩沖器的最多數(shù)量可以是4個存儲緩沖器,每個的大小是20KB。因此,為確保把關(guān)于該4個存儲緩沖器的存儲器分配請求分配到片載存儲區(qū)204上,可把全局存儲器分配優(yōu)先閾值設(shè)為100。這樣,只有關(guān)于該4個20KB存儲緩沖器的存儲器分配請求被分配到片載存儲區(qū)204上,因為他們的優(yōu)先級大于100。其它4個關(guān)于30KB、35KB、115KB和125KB的存儲緩沖器的存儲器請求,由于它們的優(yōu)先級小于100,沒有被分派到片載存儲區(qū)204上。在另外的例子中,片載存儲區(qū)204為50KB,為使高優(yōu)先級的存儲器分配請求的個數(shù)最多,可以把全局存儲器分配優(yōu)先閾值設(shè)為250。這樣,優(yōu)先級最高的2個存儲器分配請求,即優(yōu)先級為600和300的存儲器分配請求被分配到片載存儲區(qū)204的存儲空間。
在其他的一些實施例中,片載存儲區(qū)204能給正在運行的應(yīng)用程序的所有的存儲緩沖器請求分配存儲空間。這種情況下,通過在片載存儲區(qū)204上分配存儲器空間,就不需要使用片外的存儲區(qū)210和215(圖2)。這樣,片外存儲區(qū)210和215處于備用模式,可以節(jié)省電能。但是,為同一特定目的是分配片載存儲緩沖器有利還是分配片外存儲緩沖器有利,對不同應(yīng)用程序而言,可能是不同的。例如,為節(jié)能而給僅播放MP3文件的程序分配片載存儲器而不使用片外存儲器是有利的;但是對于視頻應(yīng)用程序,使視頻播放相關(guān)的存儲緩沖器采用片載存儲器,而音頻相關(guān)的(包括處理MP3文件)存儲緩沖器采用片外存儲器則更為有利。
步驟320中,基于存儲器分配請求的優(yōu)先級和全局存儲器分配優(yōu)先閾值,存儲緩沖器可以在片載存儲區(qū)204或片外存儲區(qū)210和/或215中分配。例如,如果全局存儲器分配優(yōu)先閾值設(shè)為300,優(yōu)先級大于300的存儲分配請求從片載存儲區(qū)204中分配;相似地,優(yōu)先級小于300的存儲分配請求從片外存儲區(qū)210和/或215中分配。優(yōu)先級等于全局存儲器分配優(yōu)先閾值的存儲器分配請求,被分配到片載存儲區(qū)204還是被分配到片外存儲區(qū)215和/或210,可在設(shè)計時和/或執(zhí)行時決定。
步驟330中,對正在運行的或已計劃要運行的應(yīng)用程序進行監(jiān)視,以了解存儲緩沖器分配受影響程度。例如,如果當前運行的應(yīng)用程序是視頻播放程序,視頻幀的速率可能會變化。由于幀速率與視頻緩沖器的訪問次數(shù)直接相關(guān),因此,存儲緩沖器的分配調(diào)度方案可能需要改變。這可通過調(diào)整全局存儲器分配優(yōu)先閾值和/或存儲器分配請求優(yōu)先級來完成。
步驟340中,基于步驟330所做的決定改變?nèi)执鎯ζ鞣峙鋬?yōu)先閾值和/或存儲器分配請求優(yōu)先級。在本發(fā)明的一個實施例中,改變?nèi)执鎯ζ鞣峙鋬?yōu)先閾值和/或存儲器分配請求優(yōu)先級需要釋放已分配的存儲器。之后,新的存儲器請求采用新的全局存儲器分配優(yōu)先閾值和/或存儲器分配請求優(yōu)先級。在本發(fā)明的另一個實施例中,可以不釋放已分配的存儲器,但是以后所進行的存儲器分配可以基于新的全局存儲器分配優(yōu)先閾值和/或存儲器分配請求優(yōu)先級。釋放已分配的存儲器的決定可以根據(jù)是否執(zhí)行新的應(yīng)用程序、是否檢測到當前運行的應(yīng)用程序中的改變,或其他設(shè)計考慮。
以上通過一個簡單的運算法則對本發(fā)明的實施例進行了闡述,但是本發(fā)明不局限于所闡述的實施例。本發(fā)明的另一個實施例采用的運算法則考慮多種因素,如存儲緩沖器的訪問頻率、是否采用DMA方式訪問存儲緩沖器等,所述因素可以加權(quán)也可以不加權(quán)。處理器如移動多媒體處理器102(圖1b)不使用存儲器時,可以采用DMA方式,這能減少遲延。當處理器為訪問片外存儲器中的數(shù)據(jù)而需要等待時,會出現(xiàn)了遲延。
在一些例子中,通過高速緩存(如圖2中的高速緩存區(qū)202)訪問存儲緩沖器能減少遲延。但是這取決于訪問信息的方法。例如,如果存儲緩沖器被隨機訪問,高速緩存所減少的遲延不多,甚至沒有減少。相反,如果被多次訪問的少量數(shù)據(jù)保留在高速緩存中,則顯示出良好的性能。另外一個因素是所請求的存儲器的大小。如果從片載存儲區(qū)上分配大容量存儲緩沖器,可能導(dǎo)致其他的存儲緩沖器只能從片外存儲區(qū)上分配。如果訪問片外存儲緩沖器的次數(shù)多于訪問片載存儲緩沖器的次數(shù),那么,造成的遲延是不可接受的。在本發(fā)明的一個實施例中,設(shè)定存儲器請求的優(yōu)先級與預(yù)期遲延的次數(shù)成比例。
另外,在本發(fā)明的實施例中,采用兩個存儲區(qū),該兩個存儲區(qū)采用同一個優(yōu)先閾值。但本發(fā)明不僅僅局限于該種情況。例如,可以采用多個存儲區(qū),每個存儲區(qū)都有不同的訪問時間。從而采用多個優(yōu)先閾值來確定從至少一個存儲區(qū)上分配存儲器。例如,有存儲區(qū)A、B、C和D,該4個存儲區(qū)的訪問次數(shù)從存儲區(qū)A到存儲區(qū)D順次增加。那么,可能會有多個全局存儲器分配優(yōu)先閾值以從A和B之間、從B和C之間、從C和D之間分配存儲器。
所述存儲區(qū)可以是物理存儲器組也可以是邏輯存儲器組。邏輯存儲區(qū)包括具有相同的訪問次數(shù)但物理位置不一定相同。雖然存儲器請求優(yōu)先級和全局存儲器分配優(yōu)先閾值都可以改變,但僅改變?nèi)执鎯ζ鞣峙鋬?yōu)先閾值會更容易。因為全局存儲器分配優(yōu)先閾值數(shù)目相對少,而存儲器請求優(yōu)先級數(shù)目相對多。但是有時候改變存儲器請求優(yōu)先級能夠給存儲器分配的帶來附加控制。
本發(fā)明的一個實施例中,能夠?qū)⑻囟ǖ拇鎯彌_器強制分配在特定存儲區(qū)中,例如,分配到片載存儲區(qū)中,而不考慮存儲器請求的優(yōu)先級。一種實現(xiàn)方法是采用不同的存儲器請求功能,該存儲器請求功能指定從哪個存儲區(qū)中分配存儲緩沖空間。作為選擇,可采用各種不同的存儲器請求功能來從每個不同存儲區(qū)上請求存儲緩沖空間。
本發(fā)明的一個實施例通過監(jiān)視存儲緩沖器的性能來確定具有太多遲延的存儲緩沖器。該存儲緩沖器將被移動到能減少遲延次數(shù)的存儲區(qū)上。因此,正常訪問存儲緩沖器時必需置該存儲緩沖器于鎖定狀態(tài);移動存儲緩沖器時必需置該存儲緩沖器于解鎖狀態(tài)。應(yīng)用程序無法訪問解鎖狀態(tài)下的存儲緩沖器中的內(nèi)容以在移動緩沖器到不同的存儲區(qū)的過程中保持所述內(nèi)容的完整性。所述移動過程結(jié)束后,該存儲緩沖器可轉(zhuǎn)為鎖定狀態(tài)。
圖4是根據(jù)本發(fā)明實施例的設(shè)定全局存儲器分配優(yōu)先閾值的流程圖。參考圖4,步驟400中,把當前使用的全局存儲器分配優(yōu)先閾值復(fù)制到變量中。步驟410中,設(shè)定全局存儲器分配優(yōu)先閾值的新值,該新值已被調(diào)用函數(shù)(calling function)傳遞(passed in)。步驟420中,把舊的全局存儲器分配優(yōu)先閾值返回給程序(routine),該程序成為當前程序。
軟件或固件例行程序可使用圖4所示的步驟400到步驟420改變?nèi)执鎯ζ鞣峙鋬?yōu)先閾值。步驟400中,把舊的全局存儲器分配優(yōu)先閾值存儲到變量中,以在改變?nèi)执鎯ζ鞣峙鋬?yōu)先閾值時,保存舊的優(yōu)先閾值。步驟410中,全局存儲器分配優(yōu)先閾值改為一個新值,當調(diào)用該程序(routine)時,該新值作為參數(shù)傳遞。隨后的所有的存儲器分配都使用該新值以定位存儲緩沖器,對于正在片載存儲器中運行的程序而言,所述存儲緩沖器被認為是重要的。步驟420中,調(diào)用程序返回步驟410中保存的全局存儲器分配優(yōu)先閾值舊值,調(diào)用程序結(jié)束。
圖5是根據(jù)本發(fā)明實施例的基于存儲器請求優(yōu)先級的程序流程圖。參考圖5,步驟500中,優(yōu)先級作為參數(shù)傳遞給調(diào)用程序,并與全局存儲器分配優(yōu)先閾值作比較。步驟510中,使用步驟500中的比較結(jié)果分配片載或片外存儲器。步驟520中,檢查錯誤情形(error condition)并斷言(assert)出現(xiàn)的任何錯誤結(jié)果。步驟530中,把返回值返回給調(diào)用程序從而結(jié)束該程序,該返回值表示基于存儲器請求的優(yōu)先級是否已完成。
參考圖5,以存儲器請求程序為基礎(chǔ)的軟件或固件基于存儲器請求的優(yōu)先級使用步驟500至步驟530來分配存儲器。步驟500中,基于存儲器請求程序的優(yōu)先級可以有多個參數(shù),如所請求的存儲器的大小、字節(jié)定位邊界(alignment boundary)、所請求的存儲器的優(yōu)先級、對所請求的存儲器的描述。基于優(yōu)先級的存儲器請求程序?qū)鬟f或輸入的優(yōu)先級參數(shù)與全局存儲器分配優(yōu)先閾值進行比較。如果所傳遞的或輸入的優(yōu)先級小于全局存儲器分配優(yōu)先閾值,就把片外存儲器分配給該請求的存儲緩沖器。如果所傳遞的或輸入的優(yōu)先級大于或等于全局存儲器分配優(yōu)先閾值,就從片載存儲器上為該請求分配存儲緩沖器。
步驟510中,可調(diào)用存儲器分配程序來分配存儲器,傳遞給存儲器分配程序的參數(shù)包括以字節(jié)表示的所請求的存儲器大小和所請求的存儲器的定位邊界(alignment boundary)。例如,所述定位邊界可以是2字節(jié)的邊界、4字節(jié)的邊界或8字節(jié)的邊界。除此之外,還可使用其他字節(jié)數(shù)的邊界。調(diào)用存儲器分配程序時使用的另一個參數(shù)用于表示分配的是片載存儲器(如圖2中的片載存儲器204)還是片外存儲器(如圖2中的片外存儲器210或215)。存儲器分配程序使用的另外一個參數(shù)是描述參數(shù)。該描述參數(shù)可以是描述存儲緩沖器的字符串,如該存儲緩沖器用于什么用途等。存儲器分配調(diào)用程序會返回一個返回值,該返回值顯示是否成功分配了存儲器。該返回值被保存為變量。
步驟520中,進行了錯誤檢測。例如,如果傳入的優(yōu)先級參數(shù)的值不屬于片載或片外存儲器使用的優(yōu)先級值的一部分,或者被調(diào)用的存儲器分配程序返回一個錯誤情形,那么,系統(tǒng)就斷言錯誤情形。步驟530中,基于優(yōu)先級的存儲器請求程序把返回值返回給調(diào)用程序,所述返回值可以是步驟510中保存的存儲器分配調(diào)用程序返回值。
雖然本發(fā)明的一個實施例中,如果存儲器請求優(yōu)先級小于全局存儲器分配優(yōu)先閾值,就為之分配片外或低速存儲器,但是本發(fā)明不僅僅限于該實施例。通過對比存儲器請求優(yōu)先級與全局存儲器分配優(yōu)先閾值來確定是分配快速存儲器還是分配低速存儲器,可以根據(jù)設(shè)計或執(zhí)行而定。
本發(fā)明可以通過硬件、軟件,或者軟、硬件結(jié)合來實現(xiàn)。本發(fā)明可以在至少一個計算機系統(tǒng)中以集中方式實現(xiàn),或者由分布在幾個互連的計算機系統(tǒng)中的不同部分以分散方式實現(xiàn)。任何可以實現(xiàn)所述方法的計算機系統(tǒng)或其它設(shè)備都是可適用的。常用軟硬件的結(jié)合可以是安裝有計算機程序的通用計算機系統(tǒng),通過安裝和執(zhí)行所述程序控制計算機系統(tǒng),使其按所述方法運行。在計算機系統(tǒng)中,利用處理器和存儲單元來實現(xiàn)所述方法。
本發(fā)明還可以通過計算機程序產(chǎn)品進行實施,所述程序包含能夠?qū)崿F(xiàn)本發(fā)明方法的全部特征,當其安裝到計算機系統(tǒng)中時,通過運行,可以實現(xiàn)本發(fā)明的方法。本文件中的計算機程序所指的是可以采用任何程序語言、代碼或符號編寫的一組指令的任何表達式,該指令組使系統(tǒng)具有信息處理能力,以直接實現(xiàn)特定功能,或在進行下述一個或兩個步驟之后實現(xiàn)特定功能a)轉(zhuǎn)換成其它語言、代碼或符號;b)以不同的格式再現(xiàn)。
本發(fā)明是通過幾個具體實施例進行說明的,本領(lǐng)域技術(shù)人員應(yīng)當明白,在不脫離本發(fā)明范圍的情況下,還可以對本發(fā)明進行各種變換及等同替代。另外,針對特定情形或具體情況,可以對本發(fā)明做各種修改,而不脫離本發(fā)明的范圍。因此,本發(fā)明不局限于所公開的具體實施例,而應(yīng)當包括落入本發(fā)明權(quán)利要求范圍內(nèi)的全部實施方式。
本發(fā)明要求申請日期為2005年2月12日、申請?zhí)枮?0/652,433的美國臨時專利申請的優(yōu)先權(quán)。
權(quán)利要求
1.一種管理存儲器的方法,包括在移動多媒體處理器芯片中接收多個存儲器請求;通過從以下存儲區(qū)至少之一中分配存儲器來處理所述多個存儲器請求至少一個片載存儲區(qū)和至少一個片外存儲區(qū);和所述分配存儲器基于所述多個存儲器請求中的每個存儲器請求的優(yōu)先級以及至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值而進行。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法包括基于新的應(yīng)用程序動態(tài)地確定所述至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值的新值。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法包括通過監(jiān)視至少一個當前應(yīng)用程序中的至少一個軟件進程來動態(tài)地確定所述至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值的新值。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法包括為新的應(yīng)用程序的至少一個軟件進程的多個存儲器請求中的每個存儲器請求動態(tài)地確定新的優(yōu)先級。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法包括通過監(jiān)視至少一個當前應(yīng)用程序中的至少一個軟件進程,為所述至少一個軟件進程的所述多個存儲器請求中的至少一個存儲器請求動態(tài)地確定新的優(yōu)先級。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法包括指定所述至少一個片載存儲區(qū)和所述至少一個片外存儲區(qū)中的一個以從中分配存儲器。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法包括把所分配的存儲器中的數(shù)據(jù)移動到所述至少一個片載存儲區(qū)和所述至少一個片外存儲區(qū)上不同的存儲器中。
8.一種可機讀的存儲器,其上存儲有計算機程序,所述計算機程序包含至少一個用于為移動多媒體處理器管理存儲器的代碼段,當機器執(zhí)行該至少一個代碼段時,該機器進行以下步驟在移動多媒體處理器芯片中接收多個存儲器請求;通過從以下存儲區(qū)至少之一中分配存儲器來處理所述多個存儲器請求至少一個片載存儲區(qū)和至少一個片外存儲區(qū);和所述分配存儲器基于所述多個存儲器請求中的每個存儲器請求的優(yōu)先級以及至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值而進行。
9.根據(jù)權(quán)利要求8所述的可機讀存儲器,其特征在于,還包括用于基于新的應(yīng)用程序動態(tài)地確定所述至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值的新值的代碼段。
10.根據(jù)權(quán)利要求8所述的可機讀存儲器,其特征在于,還包括用于通過監(jiān)視至少一個當前應(yīng)用程序中的至少一個軟件進程來動態(tài)地確定所述至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值的新值的代碼段。
全文摘要
本發(fā)明涉及一種移動多媒體處理器中存儲器管理的方法。該方法包括在移動多媒體處理器芯片中接收多個存儲器請求。從至少一個片載存儲區(qū)和/或至少一個片外存儲區(qū)中分配存儲器來處理該多個存儲器請求?;谠摱鄠€存儲器請求中的每個存儲器請求的優(yōu)先級以及至少一個可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值來分配存儲器?;谛碌膽?yīng)用程序和/或通過監(jiān)視至少一個當前應(yīng)用程序的至少一個軟件進程動態(tài)地確定可動態(tài)設(shè)定的全局存儲器分配優(yōu)先閾值的新值。此外,可為新的應(yīng)用程序的至少一個軟件進程的每個存儲器請求動態(tài)地確定新的優(yōu)先級。
文檔編號G06F9/46GK1825290SQ20061000882
公開日2006年8月30日 申請日期2006年2月13日 優(yōu)先權(quán)日2005年2月12日
發(fā)明者多米尼克·科布利 申請人:美國博通公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沽源县| 陆良县| 静安区| 荃湾区| 丰城市| 昌乐县| 齐河县| 邮箱| 崇义县| 荣昌县| 沙雅县| 阳原县| 横山县| 丁青县| 兴海县| 雷山县| 北流市| 苗栗市| 米脂县| 五台县| 攀枝花市| 龙门县| 大石桥市| 天门市| 铜川市| 华蓥市| 吉林市| 秭归县| 林芝县| 涟源市| 民和| 和平区| 安达市| 无棣县| 奉化市| 新巴尔虎右旗| 石泉县| 收藏| 上虞市| 宿松县| 聂拉木县|