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

一種嵌入式設(shè)備圖像內(nèi)存管理方法及裝置的制作方法

文檔序號:6432538閱讀:217來源:國知局
專利名稱:一種嵌入式設(shè)備圖像內(nèi)存管理方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種嵌入式設(shè)備圖像內(nèi)存管理方法及裝置。
背景技術(shù)
DirectFB是一個(gè)在嵌入式系統(tǒng)中廣泛應(yīng)用的函數(shù)庫。是針對嵌入式設(shè)備的特殊需求環(huán)境,為圖形加速和圖形增強(qiáng)支持開發(fā)的一個(gè)小巧、強(qiáng)大和易于使用的技術(shù)。DirectFB的函數(shù)利用鏈表來實(shí)現(xiàn)圖像內(nèi)存(video memory)的管理。初始狀態(tài)時(shí), 鏈表只有一個(gè)空閑節(jié)點(diǎn)(free memory node),記錄整個(gè)內(nèi)存池的起始地址和末地址。當(dāng)應(yīng)用程序需要從內(nèi)存池中分配一塊內(nèi)存時(shí),DirectFB的內(nèi)存管理器遍歷鏈表中的所有free memory node,找出最匹配的free memory node返回給應(yīng)用程序。如果找不到大小正好匹配的free memory node,則從最接近所需內(nèi)存大小的free memory node中分配,并在鏈表中插入一個(gè)新的內(nèi)存節(jié)點(diǎn)來記錄新分配的內(nèi)存塊信息,并且該新的內(nèi)存節(jié)點(diǎn)被標(biāo)示為已分配狀態(tài)。在鏈表中相鄰的內(nèi)存節(jié)點(diǎn)所描述的內(nèi)存塊在物理上也是鄰近的?,F(xiàn)有技術(shù)中,DirectFB管理內(nèi)存的方式為當(dāng)應(yīng)用程序釋放內(nèi)存塊時(shí),記錄該內(nèi)存塊信息的節(jié)點(diǎn)會被置為空閑狀態(tài),如果與該空閑節(jié)點(diǎn)相鄰的節(jié)點(diǎn)也是空閑狀態(tài),則會完成節(jié)點(diǎn)合并,將兩個(gè)節(jié)點(diǎn)所記錄的空閑內(nèi)存塊合并成一個(gè)更大的空閑內(nèi)存塊,如圖1所示 block4與block5合并為block4。在上述內(nèi)存管理的方式下,在物理上連續(xù)的內(nèi)存塊,如果其生命周期不一樣,就會出現(xiàn)內(nèi)存碎片。于是出現(xiàn)這樣一種狀況雖然可用的空閑內(nèi)存的總量大于所需要分配的內(nèi)存,但是所有的空閑節(jié)點(diǎn)都小于所需要分配內(nèi)存的大小,于是內(nèi)存管理器會出現(xiàn)分配內(nèi)存失敗的情況。如何在空閑的內(nèi)存大于需要分配的內(nèi)存的情況下,確保能使應(yīng)用程序分配到需要的內(nèi)存是目前需要解決的問題。

發(fā)明內(nèi)容
本發(fā)明主要解決的技術(shù)問題是提供一種嵌入式設(shè)備圖像內(nèi)存管理方法及裝置,能夠在空閑的內(nèi)存的總大小大于需要分配的內(nèi)存但是單獨(dú)的空閑的內(nèi)存塊都小于需要分配的內(nèi)存的情況下,大大提高應(yīng)用程序分配到需要的內(nèi)存的概率。為解決上述技術(shù)問題,本發(fā)明采用的一個(gè)技術(shù)方案是提供一種嵌入式設(shè)備圖像內(nèi)存管理方法,包括從圖像內(nèi)存鏈表中獲取節(jié)點(diǎn);判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);如果該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中沒有有效數(shù)據(jù),則判斷該節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);如果該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù),則判斷該有效數(shù)據(jù)是否可移動;如果該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)可移動,則將該節(jié)點(diǎn)所描述的內(nèi)存塊信息與前一個(gè)節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,并且將該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動至該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中。為解決上述技術(shù)問題,本發(fā)明采用的另一個(gè)技術(shù)方案是提供一種嵌入式設(shè)備圖像內(nèi)存管理裝置,包括第一獲取模塊,用于從圖像內(nèi)存鏈表中獲取節(jié)點(diǎn);第一判斷模塊,用于判斷獲取模塊獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);第二判斷模塊,用于當(dāng)?shù)谝慌袛嗄K判斷出第一獲取模塊獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中沒有有效數(shù)據(jù)時(shí),再判斷該節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);第三判斷模塊,用于當(dāng)?shù)诙袛嗄K判斷出前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù)時(shí),再判斷該有效數(shù)據(jù)是否可移動;交換模塊,用于當(dāng)?shù)谌袛嗄K判斷出前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)可移動時(shí),將前該節(jié)點(diǎn)所描述的內(nèi)存塊信息與前一個(gè)節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,并且將前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動至該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中。本發(fā)明通過從圖像內(nèi)存鏈表獲取節(jié)點(diǎn),如果檢測到非空閑節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)是可以移動的,則通過將空閑節(jié)點(diǎn)描述的內(nèi)存塊信息和非空閑節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,然后將非空閑節(jié)點(diǎn)對應(yīng)的內(nèi)存塊的有效數(shù)據(jù)移動到空閑節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中,將空閑節(jié)點(diǎn)往鏈表的起始方向移動,將非空閑節(jié)點(diǎn)往鏈表末尾方向移動,最后移動后的空閑內(nèi)存塊將位于圖像內(nèi)存的起始位置;通過對圖像內(nèi)存的內(nèi)存碎片進(jìn)行管理,將多個(gè)內(nèi)存碎片都移動至圖像內(nèi)存的起始位置,形成一個(gè)大的并且在物理上連續(xù)的空閑內(nèi)存塊,從而當(dāng)應(yīng)用程序需要申請較大的內(nèi)存塊時(shí),能夠滿足申請要求。


圖1是現(xiàn)有技術(shù)中相鄰的空閑內(nèi)存塊合并的示意圖;圖2是本發(fā)明實(shí)施例圖像內(nèi)存管理方法的數(shù)據(jù)流程圖;圖3是本發(fā)明實(shí)施例圖像內(nèi)存管理方法的應(yīng)用場景示意圖;圖4是本發(fā)明實(shí)施例圖像內(nèi)存管理方法在實(shí)際應(yīng)用中的數(shù)據(jù)流程圖;圖5是本發(fā)明實(shí)施例圖像內(nèi)存管理裝置的邏輯結(jié)構(gòu)示意圖。
具體實(shí)施例方式參閱圖2,本發(fā)明嵌入式設(shè)備圖像內(nèi)存管理方法的實(shí)施例包括201、獲取圖像內(nèi)存鏈表中的倒數(shù)第一個(gè)節(jié)點(diǎn);從圖像內(nèi)存鏈表的倒數(shù)第一個(gè)節(jié)點(diǎn)開始獲取節(jié)點(diǎn),首先獲取倒數(shù)第一個(gè)節(jié)點(diǎn);202、判斷該節(jié)點(diǎn)是否為空;每獲取一個(gè)節(jié)點(diǎn),首先判斷該節(jié)點(diǎn)是否是空節(jié)點(diǎn),如果是空節(jié)點(diǎn),則說明上一個(gè)獲取的節(jié)點(diǎn)是本圖像內(nèi)存鏈表的倒數(shù)最后一個(gè)節(jié)點(diǎn);如果節(jié)點(diǎn)為空節(jié)點(diǎn),則執(zhí)行步驟203 ;如果節(jié)點(diǎn)不為空節(jié)點(diǎn),則執(zhí)行步驟204 ;203、結(jié)束;如果步驟202中判斷出節(jié)點(diǎn)為空節(jié)點(diǎn),說明已經(jīng)將整個(gè)圖像內(nèi)存鏈表整理完了, 則流程結(jié)束;204、判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);
判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù),如果有有效數(shù)據(jù),則執(zhí)行步驟205 ; 如果沒有有效數(shù)據(jù),則執(zhí)行步驟206 ;205、獲取前一個(gè)節(jié)點(diǎn);如果步驟204中判斷出該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù),則獲取該節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),然后返回步驟202,判斷本步驟中獲取的節(jié)點(diǎn)是否為空,如果不為空,則再執(zhí)行步驟 204判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù),依次循環(huán),直至轉(zhuǎn)到步驟206,獲取到對應(yīng)的內(nèi)存塊中沒有有效數(shù)據(jù)的節(jié)點(diǎn);206、獲取前一個(gè)節(jié)點(diǎn);如果步驟204中判斷出該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中沒有有效數(shù)據(jù),則獲取該節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn);207、判斷該節(jié)點(diǎn)是否為空;判斷步驟206中獲取的前一個(gè)節(jié)點(diǎn)是否是空節(jié)點(diǎn),如果是空節(jié)點(diǎn),則說明上一個(gè)獲取的節(jié)點(diǎn)是本圖像內(nèi)存鏈表的倒數(shù)最后一個(gè)節(jié)點(diǎn),執(zhí)行步驟203,結(jié)束流程;如果判斷出節(jié)點(diǎn)不為空節(jié)點(diǎn),則執(zhí)行步驟208 ;208、判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù),如果有有效數(shù)據(jù),則執(zhí)行步驟210 ; 如果沒有有效數(shù)據(jù),則執(zhí)行步驟209 ;209、合并;將步驟201中獲取的節(jié)點(diǎn)或者步驟205中獲取的節(jié)點(diǎn),與步驟206中獲取的節(jié)點(diǎn)合并,具體的將步驟201中獲取的節(jié)點(diǎn)或者步驟205中獲取的節(jié)點(diǎn)的起始地址改為步驟206中獲取的節(jié)點(diǎn)的起始地址,并將步驟201中獲取的節(jié)點(diǎn)或者步驟205中獲取的節(jié)點(diǎn)指向前一個(gè)節(jié)點(diǎn)的指針改為指向步驟206中獲取的節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),并刪除步驟206中獲取的節(jié)點(diǎn)?;蛘撸喜⒌牟襟E還可以為將步驟206中獲取的節(jié)點(diǎn)的結(jié)束地址改為步驟201中獲取的節(jié)點(diǎn)或者步驟205中獲取的節(jié)點(diǎn)的結(jié)束地址,并將步驟206中獲取的節(jié)點(diǎn)指向下一個(gè)節(jié)點(diǎn)的指針改為指向步驟 201中獲取的節(jié)點(diǎn)或者步驟205中獲取的節(jié)點(diǎn)的后一個(gè)節(jié)點(diǎn),并刪除步驟201中獲取的節(jié)點(diǎn)或者步驟205中獲取的節(jié)點(diǎn)。210、判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否為layer surface ;判斷步驟206中獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否為layer surface,如果是layer surface,說明該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)是不能移動的,則返回步驟206,獲取前一個(gè)節(jié)點(diǎn);如果判斷出步驟206中獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊不為layer surface,說明該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)是可以移動的,則執(zhí)行步驟211 ;211、判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否被鎖定;如果內(nèi)存塊正在被使用,則該內(nèi)存塊是被鎖定的;如果內(nèi)存塊被鎖定,那么內(nèi)存塊中存儲的有效數(shù)據(jù)是不能被移動的;如果判斷出步驟206中獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是被鎖定的,則返回步驟206,獲取前一個(gè)節(jié)點(diǎn);如果判斷出步驟206中獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊沒有被鎖定,說明該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)是可以移動的,則執(zhí)行步驟212 ;212、判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否于最近一次被GPU訪問過;如果內(nèi)存塊最近一次被GPU訪問過,有可能GPU還在使用該內(nèi)存塊中存儲的數(shù)據(jù), 所以該內(nèi)存塊中存儲的有效數(shù)據(jù)暫時(shí)還不能被移動,該內(nèi)存塊中存儲的有效數(shù)據(jù)需要等待 GPU訪問完成才能移動;判斷步驟206中獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否于最近一次被GPU 訪問過,如果最近一次被GPU訪問過,則執(zhí)行步驟213 ;如果最近一次沒有被GPU訪問過,則執(zhí)行步驟214;213、等待GPU訪問完成;如果步驟212中判斷出步驟206中獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊最近一次被GPU訪問過,則等待GPU訪問完成;214、內(nèi)存塊中存儲的數(shù)據(jù)交換;如果判斷出步驟206中獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)可移動,則將步驟206中獲取的節(jié)點(diǎn)所描述的內(nèi)存塊信息與步驟201中獲取的節(jié)點(diǎn)或者步驟205中獲取的節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,并且將步驟206中獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動至步驟201中獲取的節(jié)點(diǎn)或者步驟205中獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中;在執(zhí)行完交換內(nèi)存塊中存儲的數(shù)據(jù)的步驟后,再返回步驟206,獲取前一個(gè)節(jié)點(diǎn), 依次循環(huán),直到判斷出獲取的節(jié)點(diǎn)為空節(jié)點(diǎn),即將沒有有效數(shù)據(jù)的內(nèi)存塊都移到圖像內(nèi)存的前面部分。需要進(jìn)一步說明的是,在另外的實(shí)施例中,步驟210和步驟211的執(zhí)行順序是可以互換的,即可以先執(zhí)行步驟211,再執(zhí)行步驟210。例如有一個(gè)圖像內(nèi)存被分成η個(gè)內(nèi)存塊,分別為從blockl至blockn,該圖像內(nèi)存由一個(gè)對應(yīng)的鏈表管理,鏈表中每個(gè)節(jié)點(diǎn)對應(yīng)一個(gè)內(nèi)存塊block,即blockl至blockn分別對應(yīng)第一節(jié)點(diǎn)至第η節(jié)點(diǎn);如圖3所示,具體的首先從鏈表的末節(jié)點(diǎn)開始獲取節(jié)點(diǎn),每次獲取節(jié)點(diǎn)都需要判斷該節(jié)點(diǎn)是否為空, 來確認(rèn)是否已經(jīng)將鏈表中的節(jié)點(diǎn)取完了 ;例如先取末節(jié)點(diǎn),即第一節(jié)點(diǎn),第一節(jié)點(diǎn)對應(yīng) blockl, blockl是有有效數(shù)據(jù)的,則獲取下一個(gè)節(jié)點(diǎn),即第二節(jié)點(diǎn),第二節(jié)點(diǎn)對應(yīng)block2, block2是沒有有效數(shù)據(jù)的,即block2處于空閑狀態(tài);然后獲取第三節(jié)點(diǎn),第三節(jié)點(diǎn)對應(yīng)block3,block3有有效數(shù)據(jù),再判斷block3的有效數(shù)據(jù)是否是可移動的,如果判斷出 block3既不是layer surface,也沒有被鎖定,并且也沒有最近一次被GPU訪問過,說明 block3的有效數(shù)據(jù)是可以被移動的,則將block3的有效數(shù)據(jù)移動到block2中,具體的先將第三節(jié)點(diǎn)所描述的內(nèi)存塊信息和第二節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,然后將block3 中的有效數(shù)據(jù)移動到block2中,如圖3中的301所示;然后獲取下一個(gè)節(jié)點(diǎn),即第四節(jié)點(diǎn),第四節(jié)點(diǎn)不為空,再判斷出第四節(jié)點(diǎn)對應(yīng)的 block4中沒有有效數(shù)據(jù),則將第二節(jié)點(diǎn)和第四節(jié)點(diǎn)合并成第二節(jié)點(diǎn),具體的,將第二節(jié)點(diǎn)的起始地址改為第四節(jié)點(diǎn)的起始地址,將第二節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn)改為第四節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn),即將第二個(gè)節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn)改為第五節(jié)點(diǎn),然后刪除第四節(jié)點(diǎn),如圖3中302所示;然后獲取下一個(gè)節(jié)點(diǎn),即第五節(jié)點(diǎn),第五節(jié)點(diǎn)不為空,判斷出第五節(jié)點(diǎn)對應(yīng)的 block5中是有有效數(shù)據(jù)的,再判斷block5中存儲的有效數(shù)據(jù)是否可移動,具體的,如果判斷出block5既不是layer surface,也沒有被鎖定,但是block5最近一次被GPU訪問過,則需要等待GPU訪問完成,block5中存儲的有效數(shù)據(jù)才能被移動,在等待GPU訪問完成后, 則將block5中存儲的有效數(shù)據(jù)移動到block2中,具體的先將第五節(jié)點(diǎn)所描述的內(nèi)存塊信息和第二節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,然后將block5中存儲的有效數(shù)據(jù)移動到 block2中,如圖3中的303所示;然后獲取下一個(gè)節(jié)點(diǎn),即第六節(jié)點(diǎn),第六節(jié)點(diǎn)不為空,再判斷出第六節(jié)點(diǎn)對應(yīng)的 blocM中沒有有效數(shù)據(jù),則將第二節(jié)點(diǎn)和第六節(jié)點(diǎn)合并成第二節(jié)點(diǎn),具體的,將第二節(jié)點(diǎn)的起始地址改為第六節(jié)點(diǎn)的起始地址,將第二節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn)改為第六節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn),即將第二節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn)改為第七節(jié)點(diǎn),然后刪除第六節(jié)點(diǎn),如圖3中304所示;如此循環(huán),直到處理完鏈表中倒數(shù)最后一個(gè)節(jié)點(diǎn),即當(dāng)取到的節(jié)點(diǎn)為空節(jié)點(diǎn)時(shí),說明已經(jīng)處理完鏈表中倒數(shù)最后一個(gè)節(jié)點(diǎn),結(jié)束流程。在本實(shí)施例中,通過從鏈表的末尾開始往前遍歷圖像內(nèi)存鏈表的節(jié)點(diǎn),如果檢測到非空閑節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)是可以移動的,則通過將空閑節(jié)點(diǎn)描述的內(nèi)存塊信息和非空閑節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,然后將非空閑節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動到空閑節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中,將空閑節(jié)點(diǎn)往鏈表的起始方向移動,合并形成新的空閑節(jié)點(diǎn),將非空閑節(jié)點(diǎn)往鏈表末尾方向移動,最后合并后的空閑內(nèi)存塊將位于圖像內(nèi)存的起始位置;通過對圖像內(nèi)存的內(nèi)存碎片進(jìn)行管理,將多個(gè)碎片合并成一個(gè)大的并且在物理上連續(xù)的空閑內(nèi)存塊,從而當(dāng)應(yīng)用程序需要申請較大的內(nèi)存塊時(shí),能夠滿足申請要求。應(yīng)用程序在申請內(nèi)存時(shí),如果沒有內(nèi)存塊的大小能滿足該應(yīng)用程序的要求,則需要利用上述實(shí)施例中的方法對內(nèi)存碎片進(jìn)行整理,具體流程如圖4所示,具體的401、應(yīng)用程序申請內(nèi)存塊;402、內(nèi)存分配測試;在接收到應(yīng)用程序的內(nèi)存塊申請后,DirectFB首先要對該申請進(jìn)行內(nèi)存分配測試,即測試當(dāng)前是否有空閑的內(nèi)存塊的大小能滿足該應(yīng)用程序的要求,如果當(dāng)前有空閑的內(nèi)存塊的大小能滿足該應(yīng)用程序的要求,則執(zhí)行步驟405,如果當(dāng)前沒有空閑的內(nèi)存塊的大小能夠滿足該應(yīng)用程序的要求,則執(zhí)行步驟403 ;403、內(nèi)存碎片整理;DirectFB對圖像內(nèi)存的碎片進(jìn)行整理,具體的整理流程如上述DirectFB內(nèi)存管理方法的實(shí)施例中所示,此處不做贅述;對圖像內(nèi)存的碎片進(jìn)行整理后,執(zhí)行步驟404 ;404、內(nèi)存分配測試;當(dāng)步驟403中對圖像內(nèi)存的碎片進(jìn)行整理后,再次進(jìn)行內(nèi)存分配測試,如果合并后的空閑內(nèi)存塊的大小能夠滿足該應(yīng)用程序的需要,則執(zhí)行步驟405,如果合并后的空閑內(nèi)存塊的大小不能夠滿足該應(yīng)用程序的需要,則執(zhí)行步驟406 ;405、執(zhí)行內(nèi)存分配;如果內(nèi)存分配測試成功,則執(zhí)行內(nèi)存分配;406、內(nèi)存分配失??;如果內(nèi)存分配測試失敗,則反饋給應(yīng)用程序內(nèi)存不夠的信息;由于內(nèi)存碎片的存在,使用越久,內(nèi)存碎片越多,應(yīng)用程序申請內(nèi)存失敗的概率越大,從而導(dǎo)致程序執(zhí)行中斷,通過本實(shí)施例提供的方法,在第一次內(nèi)存分配測試失敗后,不馬上返回失敗的信息,而是對內(nèi)存碎片進(jìn)行整理,如果整理后的空閑內(nèi)存塊的大小還是不能滿足應(yīng)用程序的需要,才返回內(nèi)存不夠的信息,本實(shí)施例提供的分配內(nèi)存的方法大大增加了應(yīng)用程序能夠分配到內(nèi)存的概率。參閱圖5,本發(fā)明嵌入式設(shè)備圖像內(nèi)存管理裝置的實(shí)施例包括第一獲取模塊501,用于從圖像內(nèi)存鏈表中獲取節(jié)點(diǎn);第一判斷模塊502,用于判斷獲取模塊501獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);第二判斷模塊503,用于當(dāng)?shù)谝慌袛嗄K502判斷出第一獲取模塊501獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中沒有有效數(shù)據(jù)時(shí),再判斷該節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);第三判斷模塊504,用于當(dāng)?shù)诙袛嗄K503判斷出該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù)時(shí),再判斷該有效數(shù)據(jù)是否可移動;交換模塊505,用于當(dāng)?shù)谌袛嗄K504判斷出前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)可移動時(shí),將該節(jié)點(diǎn)所描述的內(nèi)存塊信息與前一個(gè)節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,并且將該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動至該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中;本實(shí)施例中的裝置還包括第二獲取模塊506,用于當(dāng)?shù)谝慌袛嗄K502判斷出該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù)時(shí),獲取該節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),然后由第二判斷模塊503判斷該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù),直至圖像內(nèi)存鏈表的第一個(gè)節(jié)點(diǎn);第二獲取模塊506還用于當(dāng)?shù)谝慌袛嗄K502判斷出該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中沒有有效數(shù)據(jù),第二判斷模塊503判斷出該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù),且第三判斷模塊504判斷出該前一個(gè)節(jié)點(diǎn)描述的內(nèi)存塊中存儲的有效數(shù)據(jù)不可移動時(shí),獲取該前一個(gè)節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),然后由第二判斷模塊503判斷該獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù),直至圖像內(nèi)存鏈表的第一個(gè)節(jié)點(diǎn);第三判斷模塊504包括第一判斷單元,用于判斷獲取的節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否為layer surface,如果該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊為layer surface,則該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)不能移動;第二判斷單元,用于當(dāng)?shù)谝慌袛鄦卧袛喑鲈撉耙粋€(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊不為 layer surface時(shí),再判斷該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否處于鎖定狀態(tài),如果該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊處于鎖定狀態(tài),則該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)不能移動;第三判斷單元,用于當(dāng)?shù)谝慌袛鄦卧袛喑鲈撉耙粋€(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊不為 layer surface,第二判斷單元判斷出該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊沒處于鎖定狀態(tài)時(shí),再判斷該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否于最近一次被GPU訪問過,如果該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊最近一次被GPU訪問過,則該前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)需要等待 GPU訪問完成才能被移動;本實(shí)施例中的裝置還包括
合并模塊507,用于當(dāng)?shù)诙袛嗄K判斷出獲取的節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)沒有有效數(shù)據(jù)時(shí),將該節(jié)點(diǎn)和該前一個(gè)節(jié)點(diǎn)合并;具體的,合并模塊507包括合并單元,用于將該節(jié)點(diǎn)的起始地址改為該前一個(gè)節(jié)點(diǎn)的起始地址,并將該節(jié)點(diǎn)指向前一個(gè)節(jié)點(diǎn)的指針改為指向該前一個(gè)節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn);該合并單元還用于將前一個(gè)節(jié)點(diǎn)的結(jié)束地址改為該節(jié)點(diǎn)的結(jié)束地址,并將前一個(gè)節(jié)點(diǎn)指向下一個(gè)節(jié)點(diǎn)的指針改為指向該節(jié)點(diǎn)的后一個(gè)節(jié)點(diǎn);刪除單元,用于刪除節(jié)點(diǎn);在本實(shí)施例中,通過從鏈表的末尾開始往前遍歷圖像內(nèi)存鏈表的節(jié)點(diǎn),如果檢測到非空閑節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)是可以移動的,則通過將空閑節(jié)點(diǎn)描述的內(nèi)存塊信息和非空閑節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,然后將非空閑節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動到空閑節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中,將空閑節(jié)點(diǎn)往鏈表的起始方向移動,合并形成新的空閑節(jié)點(diǎn),將非空閑節(jié)點(diǎn)往鏈表末尾方向移動,最后合并后的空閑內(nèi)存塊將位于圖像內(nèi)存的起始位置;通過對圖像內(nèi)存的內(nèi)存碎片進(jìn)行管理,將多個(gè)碎片合并成一個(gè)大的并且在物理上連續(xù)的空閑內(nèi)存塊,從而當(dāng)應(yīng)用程序需要申請較大的內(nèi)存塊時(shí),能夠滿足申請要求。本發(fā)明實(shí)施例中對嵌入式設(shè)備圖像內(nèi)存管理方法以及嵌入式設(shè)備圖像內(nèi)存管理裝置的描述,是基于DirectFB技術(shù)進(jìn)行描述的,當(dāng)然,本發(fā)明所體現(xiàn)的思想還可以適用于嵌入式設(shè)備圖像內(nèi)存管理方面的其他技術(shù),此處不做限制。以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種嵌入式設(shè)備圖像內(nèi)存管理方法,其特征在于,包括從圖像內(nèi)存鏈表中獲取節(jié)點(diǎn);判斷所述節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);如果所述節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中沒有有效數(shù)據(jù),則判斷所述節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù),則判斷所述有效數(shù)據(jù)是否可移動;如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)可移動,則將所述節(jié)點(diǎn)所描述的內(nèi)存塊信息與所述前一個(gè)節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,并且將所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動至所述節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從圖像內(nèi)存鏈表中獲取節(jié)點(diǎn)的步驟具體為從圖像內(nèi)存鏈表中倒數(shù)第一個(gè)節(jié)點(diǎn)開始獲取節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所述節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù)的步驟之后還包括如果所述節(jié)點(diǎn)描述的內(nèi)存塊中有有效數(shù)據(jù),則繼續(xù)獲取所述節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),然后執(zhí)行判斷所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù)的步驟,直至所述圖像內(nèi)存鏈表的第一個(gè)節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述判斷所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)是否可移動的步驟之后還包括如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)不可移動,則繼續(xù)獲取所述前一個(gè)節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),并執(zhí)行判斷該獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù)的步驟, 直至所述圖像內(nèi)存鏈表的第一個(gè)節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述判斷前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)是否可移動的步驟包括判斷所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否為層面(layer surface),如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊為layer surface,則所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)不能移動;如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊不是layer surface,則再判斷所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否處于鎖定狀態(tài),如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊處于鎖定狀態(tài),則所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)不能移動。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊沒處于鎖定狀態(tài),則再判斷所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否于最近一次被圖形處理器GPU訪問過,如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊最近一次被GPU訪問過,則等待GPU訪問完成后,執(zhí)行所述將該節(jié)點(diǎn)所描述的內(nèi)存塊信息與所述前一個(gè)節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,并且將所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動至所述節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中的步驟。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述判斷所述前一個(gè)節(jié)點(diǎn)是否有有效數(shù)據(jù)的步驟之后還包括如果所述前一個(gè)節(jié)點(diǎn)沒有有效數(shù)據(jù),則將所述節(jié)點(diǎn)和所述前一個(gè)節(jié)點(diǎn)合并。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述將該節(jié)點(diǎn)和所述前一個(gè)節(jié)點(diǎn)合并的步驟包括將所述節(jié)點(diǎn)的起始地址改為所述前一個(gè)節(jié)點(diǎn)的起始地址,并將所述節(jié)點(diǎn)指向前一個(gè)節(jié)點(diǎn)的指針改為指向所述前一個(gè)節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),并刪除所述前一個(gè)節(jié)點(diǎn)。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述將該節(jié)點(diǎn)和所述前一個(gè)節(jié)點(diǎn)合并的步驟包括將所述前一個(gè)節(jié)點(diǎn)的結(jié)束地址改為所述節(jié)點(diǎn)的結(jié)束地址,并將所述前一個(gè)節(jié)點(diǎn)指向下一個(gè)節(jié)點(diǎn)的指針改為指向所述節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn),并刪除所述節(jié)點(diǎn)。
10.一種嵌入式設(shè)備圖像內(nèi)存管理裝置,其特征在于,包括第一獲取模塊,用于從圖像內(nèi)存鏈表中獲取節(jié)點(diǎn);第一判斷模塊,用于判斷所述獲取模塊獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);第二判斷模塊,用于當(dāng)所述第一判斷模塊判斷出第一獲取模塊獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中沒有有效數(shù)據(jù)時(shí),再判斷所述節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù);第三判斷模塊,用于當(dāng)所述第二判斷模塊判斷出所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù)時(shí),再判斷所述有效數(shù)據(jù)是否可移動;交換模塊,用于當(dāng)所述第三判斷模塊判斷出所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)可移動時(shí),將所述節(jié)點(diǎn)所描述的內(nèi)存塊信息與所述前一個(gè)節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,并且將所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動至所述節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括第二獲取模塊,用于當(dāng)所述第一判斷模塊判斷出所述節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù)時(shí),獲取所述節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),然后由第二判斷模塊判斷所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù),直至所述圖像內(nèi)存鏈表的第一個(gè)節(jié)點(diǎn)。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第二獲取模塊還用于當(dāng)所述第一判斷模塊判斷出所述節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中沒有有效數(shù)據(jù),而第二判斷模塊判斷出所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中有有效數(shù)據(jù),且第三判斷模塊判斷出所述前一個(gè)節(jié)點(diǎn)描述的內(nèi)存塊中存儲的有效數(shù)據(jù)不可移動時(shí),獲取所述前一個(gè)節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn),然后由第二判斷模塊判斷該獲取的節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù),直至所述圖像內(nèi)存鏈表的第一個(gè)節(jié)點(diǎn)ο
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述第三判斷模塊包括第一判斷單元,用于判斷所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否為layersurface,如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊為layer surface,則所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)不能移動;第二判斷單元,用于當(dāng)?shù)谝慌袛鄦卧袛喑鏊銮耙粋€(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊不為layer surface時(shí),再判斷所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否處于鎖定狀態(tài),如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊處于鎖定狀態(tài),則所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)不能移動;第三判斷單元,用于當(dāng)?shù)谝慌袛鄦卧袛喑鏊銮耙粋€(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊不為layer surface,而第二判斷單元判斷出所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊沒處于鎖定狀態(tài)時(shí),再判斷所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊是否于最近一次被GPU訪問過,如果所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊最近一次被GPU訪問過,則所述前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)需要等待GPU訪問完成才能被移動。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述裝置還包括合并模塊,用于當(dāng)?shù)诙袛嗄K判斷出所述前一個(gè)節(jié)點(diǎn)沒有有效數(shù)據(jù)時(shí),將所述節(jié)點(diǎn)和所述前一個(gè)節(jié)點(diǎn)合并。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述合并模塊包括合并單元,用于將所述節(jié)點(diǎn)的起始地址改為所述前一個(gè)節(jié)點(diǎn)的起始地址,并將所述節(jié)點(diǎn)指向前一個(gè)節(jié)點(diǎn)的指針改為指向所述前一個(gè)節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn);刪除單元,用于刪除節(jié)點(diǎn)。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述合并單元還用于將所述前一個(gè)節(jié)點(diǎn)的結(jié)束地址改為所述節(jié)點(diǎn)的結(jié)束地址,并將所述前一個(gè)節(jié)點(diǎn)指向下一個(gè)節(jié)點(diǎn)的指針改為指向所述節(jié)點(diǎn)的后一個(gè)節(jié)點(diǎn)。
全文摘要
本發(fā)明實(shí)施例公開了一種嵌入式設(shè)備圖像內(nèi)存管理方法,本發(fā)明實(shí)施例還公開了相應(yīng)的裝置。本方法通過從圖像內(nèi)存鏈表中獲取節(jié)點(diǎn),然后判斷該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù),如果沒有有效數(shù)據(jù),則再判斷該節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中是否有有效數(shù)據(jù),如果有有效數(shù)據(jù),則再判斷該有效數(shù)據(jù)是否可移動,如果可移動,則將兩個(gè)節(jié)點(diǎn)所描述的內(nèi)存塊信息進(jìn)行交換,并且將前一個(gè)節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中存儲的有效數(shù)據(jù)移動至該節(jié)點(diǎn)對應(yīng)的內(nèi)存塊中;通過上述方式,本發(fā)明能夠?qū)⒖臻e的內(nèi)存塊整理為一個(gè)大的內(nèi)存塊,從而在空閑的內(nèi)存的總大小大于需要分配的內(nèi)存但是單獨(dú)的空閑的內(nèi)存塊都小于需要分配的內(nèi)存的情況下,大大提高應(yīng)用程序分配到需要的內(nèi)存的概率。
文檔編號G06F12/06GK102279808SQ201110262710
公開日2011年12月14日 申請日期2011年9月6日 優(yōu)先權(quán)日2011年9月6日
發(fā)明者何虎 申請人:晨星半導(dǎo)體股份有限公司, 晨星軟件研發(fā)(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
余江县| 虞城县| 鄂尔多斯市| 湖北省| 深水埗区| 前郭尔| 江西省| 英山县| 平远县| 彰化市| 古蔺县| 高要市| 双桥区| 新昌县| 中西区| 东港市| 和静县| 卢氏县| 西乡县| 密山市| 石河子市| 南靖县| 蕉岭县| 阜南县| 天全县| 阿拉尔市| 拉萨市| 定襄县| 云霄县| 嘉荫县| 翼城县| 共和县| 边坝县| 安多县| 马边| 明水县| 清河县| 神池县| 泾川县| 岫岩| 天等县|