[發(fā)明專利]基于飛騰處理器平臺的多線程并發(fā)數(shù)據(jù)壓縮方法在審
| 申請?zhí)枺?/td> | 201410205022.1 | 申請日: | 2014-05-15 |
| 公開(公告)號: | CN103984528A | 公開(公告)日: | 2014-08-13 |
| 發(fā)明(設(shè)計)人: | 吳慶波;史佩昌;單晉奎;高瓏;夏若冰;魏彥斌;劉云;黃雪嬌 | 申請(專利權(quán))人: | 中國人民解放軍國防科學(xué)技術(shù)大學(xué) |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 湖南兆弘專利事務(wù)所 43008 | 代理人: | 趙洪;譚武藝 |
| 地址: | 410073 湖南省長沙市硯瓦池正*** | 國省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 飛騰 處理器 平臺 多線程 并發(fā) 數(shù)據(jù)壓縮 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)系統(tǒng)的數(shù)據(jù)并發(fā)壓縮技術(shù)領(lǐng)域,具體涉及一種基于飛騰處理器平臺的多線程并發(fā)數(shù)據(jù)壓縮方法。
背景技術(shù)
隨著計算機(jī)技術(shù)和信息科技的發(fā)展,數(shù)據(jù)成為了各行各業(yè)尤其重要并且保持飛速增長的資源。數(shù)據(jù)調(diào)查公司IDC報告顯示,2011年的全球數(shù)據(jù)總量已達(dá)到1.8ZB(萬億GB),預(yù)計到2020年全球電子設(shè)備存儲的數(shù)據(jù)將暴增至40ZB。數(shù)據(jù)量的不斷增大給數(shù)據(jù)的存儲和傳輸速度帶來了巨大挑戰(zhàn),尤其大規(guī)模數(shù)據(jù)的壓縮速度問題占用了大量cpu時間。為了滿足各種用戶的存儲與傳輸需求,數(shù)據(jù)壓縮技術(shù)顯得尤為重要,大量應(yīng)用于網(wǎng)絡(luò)傳輸中。數(shù)據(jù)壓縮技術(shù)將一個文件或信息壓縮成自身大小的一半甚至更小的空間,以優(yōu)化數(shù)據(jù)存儲空間及數(shù)據(jù)傳輸效率。
傳統(tǒng)的數(shù)據(jù)壓縮優(yōu)化技術(shù)大多基于x86體系結(jié)構(gòu);而飛騰處理器平臺的飛騰處理器基于sparc體系結(jié)構(gòu),與x86體系結(jié)構(gòu)無法兼容。飛騰處理器平臺下,大多數(shù)的應(yīng)用程序調(diào)用的都是zlib壓縮庫,針對調(diào)用zlib壓縮庫時數(shù)據(jù)一般都處于單線調(diào)用,所以壓縮速度慢、效率低的問題,而且同x86體系結(jié)構(gòu)相比,飛騰處理器的單核處理能力較低,而傳統(tǒng)的壓縮程序都是針對單線程的,這就導(dǎo)飛騰平臺上針對大文件壓縮速度緩慢;但另一方面,飛騰處理器的多核并行處理能力突出,將壓縮程序并行化,能充分利用多核處理器優(yōu)勢,減少壓縮時間。
綜上所述,目前飛騰處理器平臺的數(shù)據(jù)壓縮方法無法充分發(fā)揮飛騰處理器平臺及數(shù)據(jù)壓縮的多線程并發(fā)壓縮能力。因此,研究高并發(fā)、高性能的的數(shù)據(jù)壓縮方法是本領(lǐng)域技術(shù)人員極為關(guān)注的技術(shù)問題。現(xiàn)有研究中沒有公開文獻(xiàn)涉及在飛騰處理器平臺上使用多線程并發(fā)壓縮來提高壓縮速度的方法。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種能夠充分利用飛騰處理器多核多線的特點(diǎn),數(shù)據(jù)壓縮并發(fā)性好、數(shù)據(jù)壓縮速度快、數(shù)據(jù)壓縮效率高、兼容性好的基于飛騰處理器平臺的多線程并發(fā)數(shù)據(jù)壓縮方法。
為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
一種基于飛騰處理器平臺的多線程并發(fā)數(shù)據(jù)壓縮方法,其實(shí)施步驟如下:
1)獲取上層應(yīng)用調(diào)用多線程并發(fā)數(shù)據(jù)壓縮時傳入的壓縮參數(shù),所述壓縮參數(shù)包括待壓縮數(shù)據(jù)所在的緩沖區(qū)起始地址和待壓縮數(shù)據(jù)的長度;初始化用于存儲各個壓縮線程的分割壓縮數(shù)據(jù)信息的壓縮隊(duì)列、用于存儲各個壓縮線程的壓縮結(jié)果數(shù)據(jù)的寫隊(duì)列,同時開啟一個用于將寫隊(duì)列的壓縮結(jié)果數(shù)據(jù)進(jìn)行拼接的寫線程;
2)根據(jù)所述壓縮參數(shù)中待壓縮數(shù)據(jù)所在的緩沖區(qū)起始地址和待壓縮數(shù)據(jù)的長度確定壓縮線程的數(shù)量、每一個分割壓縮數(shù)據(jù)的緩沖區(qū)起始地址和壓縮數(shù)據(jù)大小,將每一個分割壓縮數(shù)據(jù)的緩沖區(qū)起始地址和壓縮數(shù)據(jù)大小作為分割壓縮數(shù)據(jù)信息存入壓縮隊(duì)列;
3)根據(jù)確定的壓縮線程的數(shù)量創(chuàng)建壓縮線程,分別為各個壓縮線程分配壓縮隊(duì)列中存儲的分割壓縮數(shù)據(jù)信息,每一個壓縮線程在收到分割壓縮數(shù)據(jù)信息后,根據(jù)分割壓縮數(shù)據(jù)信息從緩沖區(qū)讀取對應(yīng)的分割壓縮數(shù)據(jù),然后對分割壓縮數(shù)據(jù)進(jìn)行壓縮元操作在緩沖區(qū)得到一份壓縮結(jié)果數(shù)據(jù),并將所述壓縮結(jié)果數(shù)據(jù)放入寫隊(duì)列;同時,通過所述寫線程不停讀取所述寫隊(duì)列,將所述寫隊(duì)列中的壓縮結(jié)果數(shù)據(jù)寫入結(jié)果緩沖區(qū)進(jìn)行拼接,同時釋放寫隊(duì)列中已寫入結(jié)果緩沖區(qū)的壓縮結(jié)果數(shù)據(jù);在寫線程完成拼接后,最終得到壓縮的數(shù)據(jù)結(jié)果并將執(zhí)行結(jié)果返回給上層應(yīng)用。
進(jìn)一步地,所述步驟3)中對分割壓縮數(shù)據(jù)進(jìn)行壓縮元操作具體是指調(diào)用zlib壓縮庫對分割壓縮數(shù)據(jù)進(jìn)行壓縮操作。
本發(fā)明基于飛騰處理器平臺的多線程并發(fā)數(shù)據(jù)壓縮方法具有下述技術(shù)效果:
1、本發(fā)明在上層應(yīng)用程序調(diào)用壓縮庫中的函數(shù)接口來壓縮數(shù)據(jù)時,根據(jù)緩沖區(qū)中的數(shù)據(jù)大小來判斷開啟的壓縮進(jìn)程數(shù),自適應(yīng)地創(chuàng)建多個子線程來進(jìn)行壓縮工作,且通過壓縮隊(duì)列存儲各個壓縮線程的分割壓縮數(shù)據(jù)信息、通過寫隊(duì)列存儲各個壓縮線程的壓縮結(jié)果數(shù)據(jù),在壓縮完成之后,開啟一個寫線程將各個線程得到的壓縮結(jié)果合并起來,各個壓縮線程之間相互獨(dú)立,能夠被調(diào)度在飛騰處理器的各個處理器核心中進(jìn)行并行高速的壓縮處理,改變了壓縮在單一進(jìn)程中運(yùn)行的事實(shí),提高了數(shù)據(jù)壓縮的速度,從而能夠充分利用飛騰處理器多核多線的特點(diǎn),具有數(shù)據(jù)壓縮并發(fā)性好、數(shù)據(jù)壓縮速度快、數(shù)據(jù)壓縮效率高的優(yōu)點(diǎn)。
2.???本發(fā)明步驟3)中對分割壓縮數(shù)據(jù)進(jìn)行壓縮元操作進(jìn)一步是指調(diào)用zlib壓縮庫對分割壓縮數(shù)據(jù)進(jìn)行壓縮操作,因此采用的是庫函數(shù)的方法為應(yīng)用程序提供接口,而且接口與單線壓縮調(diào)用兼容,用戶不用修改現(xiàn)有代碼即可使用多線程壓縮,具有兼容性好的優(yōu)點(diǎn)。
附圖說明
圖1為本發(fā)明實(shí)施例的方法流程示意圖。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國人民解放軍國防科學(xué)技術(shù)大學(xué),未經(jīng)中國人民解放軍國防科學(xué)技術(shù)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410205022.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





