两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種數據存儲方法及裝置的制作方法

文檔序號:6582385閱讀:124來源:國知局

專利名稱::一種數據存儲方法及裝置的制作方法
技術領域
:本發(fā)明涉及電數據處理領域,尤其涉及一種數據存儲方法及裝置。
背景技術
:存儲器(Memory)是一種記憶設備,用來存放程序和數據。使用存儲器的設備中的全部信息,包括輸入的原始數據、程序、中間運行結果和最終運行結果等都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器設備才有記憶功能,才能保證正常工作。按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存)。外存通常是磁性介質或光盤等,能長期保存信息。內存指主板上的存儲部件,用來存方丈當前正在執(zhí)行的數據和程序,但僅用于暫時存放程序和數據,關閉電源或斷電,數據就會丟失。存儲器一^L由若干個存儲單元組成,每個存儲單元有一個地址,通過該地址可尋址到對應的存儲單元。現有的mp3解碼濾波技術中,對所產生的中間過程數據常常是進行批量移動和刷新,圖1示出其具體過程,其中以數據塊包含64個數據為例,其中的數據塊0、數據塊1……分別表示每次存入存儲器的數據塊<table>tableseeoriginaldocumentpage5</column></row><table>表1圖1示出上述過程的具體步驟步驟IOI、最初寫入數據時,將數據塊寫入地址為0-63的存儲單元中,所述數據塊編號為0(即數據塊0)。步驟102、第l次數據循環(huán),即把存儲器中原有的數據塊往右移64個存儲單元,然后將下一個數據塊寫入地址為0-63的存儲單元中。在本次數據循環(huán)中原先存放的數據塊為數據塊0;下一個數據塊為數據塊l;原先存ii數據塊的存儲地址為0-63;右移64個存儲單元后64127。步驟103、以后每次數據循環(huán)都必須把原先存放的數據塊往右移64個存儲單元,然后將下一個數據塊寫入存儲單元編號為0-63的存儲單元中。綜上所述,現有技術在往存儲器中寫入數據時,都必須先將存儲器中原有的數據進行轉移之后,再寫入新數據,因此會導致向存儲器中寫數據的功耗較大。
發(fā)明內容本發(fā)明實施例提供一種數據存儲方法及裝置,以降低向存儲器中寫數據時的功耗。本發(fā)明實施例提供一種數據存儲方法,包括獲得當前待寫入數據塊的前一數據塊的起始存儲地址;將所述起始存儲地址減去所述當前待寫入數據塊的大小,得到中間結果;若所述中間結果小于0,則將所述中間結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待寫入數據塊的起始存儲地址;若所述中間結果大于或等于0,則直接以該中間結果作為所述當前待寫入數據塊的起始存儲地址;從所述當前待寫入數據塊的起始存儲地址對應的存儲單元開始寫入所述當前待寫入數據塊。其中,從所述當前待寫入數據塊的起始存儲地址對應的存儲單元開始寫入6所述當前待寫入數據塊后還包括獲得所述當前待寫入數據塊的起始存儲地址;將所述起始存儲地址加上當前待讀取數據相對于該數據塊的首數據的偏移量,得到中間讀取結果;若所述中間讀取結果大于存儲器的存儲單元總數,則將所述中間讀取結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待讀取數據的實際讀取地址;若所述中間讀取結果小于或等于存儲器的存儲單元總數,則直接以該中間讀取結果作為當前待讀取數據的實際讀耳又地址;從所述實際讀取地址中讀取所述待讀取數據。本發(fā)明實施例還提供一種數據存儲裝置,包括地址確定單元,用于獲得當前待寫入數據塊的前一數據塊的起始存儲地址,并將所述起始存儲地址減去所述當前待寫入數據塊的大小,得到中間結果,若所述中間結果小于0,則將所述中間結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待寫入數據塊的起始存儲地址;若所述中間結果大于或等于0,則直接以該中間結果作為所述當前待寫入數據塊的起始存儲地址;寫入單元,用于從所述當前待寫入數據塊的起始存儲地址對應的存儲單元開始寫入所述當前待寫入數據。本發(fā)明實施例采用移地址的方法實現數據塊的存儲,與現有技術中需先批量移動數據再寫入新數據的方法相比,可以減少對存儲器的讀寫,進而減少運算時間、降低向存儲器中寫數據時的功耗。圖1為現有技術對存儲器中的數據進行轉移的方法流程圖;圖2為本發(fā)明實施例一種數據存儲方法的流程圖;圖3為本發(fā)明數據存儲方法一實施例的流程圖;圖4為本發(fā)明實施例一種數據存儲裝置的結構圖。具體實施例方式本發(fā)明實施例一種數據存儲方法,該方法包括獲得當前待寫入數據塊的前一數據塊的起始存儲地址;將所述起始存儲地址減去所述當前待寫入數據塊的大小,得到中間結果;若所述中間結果小于0,則將所述中間結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待寫入數據塊的起始存儲地址;若所述中間結果大于或等于0,則直接以該中間結果作為所述當前待寫入數據塊的起始存儲地址;從所述當前待寫入數據塊的起始存儲地址對應的存儲單元開始寫入所述當前待寫入數據塊。本發(fā)明方法可用于mp3解碼濾波等應用中。如圖2所示,本發(fā)明一實施例的一種數據存儲方法,具體包括步驟步驟201、當第一次向存儲器中寫入數據塊時,從預設的數據塊起始存儲地址開始寫入所述數據塊(本實施例中預設的數據塊的起始存儲地址為0,但可以理解的,本發(fā)明并不限于此),并記錄該數據塊的起始存儲地址。其中,記錄該數據塊的起始存儲地址可以是將起始存儲地址存儲在預先定義的起始地址寄存器中。步驟202、當寫入新數據塊時,獲取上一次寫入數據塊的起始存儲地址。步驟203、將獲取到的起始地址減去所述新數據塊所包含的數據個數得到計算結杲。步驟204、若所述計算結果小于0,則將所述計算結果與所述存儲器的存儲單元總數之和作為本次寫數據塊的起始地址;若所述計算結果大于或等于0且小于存儲器的存儲單元總數,則直接將所述計算結果作為本次寫數據塊的起始地址。步驟205、從所述本次寫數據塊的起始地址所對應的存儲單元開始寫入所述新數據塊。結合表2,以存儲單元總數為1024的存儲器,每個數據塊(在表2中數據塊由S代替,其中第一列表示第幾次進行數據存儲)中包含64個數據,為例對本發(fā)明實施例做進一步的說明,可以理解,本發(fā)明方案并不僅限于存儲器的存儲單元總數為1024和每個數據塊包含64個數據的情形。具體步驟如圖3所<table>tableseeoriginaldocumentpage9</column></row><table>表2步驟3(U、從存儲器的起始地址O開始向存儲器中寫入數據塊SO,并記錄該數據塊的起始存儲地址。步驟302、需寫入新數據塊SI時,獲取前一次寫入數據塊的起始存儲地址,其中所述起始地址為O,所述新數據塊為數據塊l。步驟303、將所述起始地址減去所述新數據塊所包含的數據個數得到計算結果,即0-64=-64(計算結果)。步驟304、本實施例中計算結果小于0,則將所述計算結果加上所述存儲器的存儲單元總數作為第二次寫入數據的起始地址,即-64+1024=960(數據塊S1的起始存儲地址)。步驟305、從計算得到的起始存儲地址對應的存儲單元開始將所述新數據塊寫入所述存儲器,即從存儲單元960開始,寫入數據塊S1。步驟306、寫入新數據塊S2時,獲取前一次寫入的數據塊S1的起始存儲地址為960。步驟307、將所述存儲器起始地址960減去所述新數據塊的數據個數64得到計算結果896。步驟308、所述計算結果(896)大于0且小于存儲器的存儲單元總數1024,則896就是本次寫入數據的起始地址,進而從存儲單元896開始,寫入數據塊S2。在本實施例中,當需要從存儲器中讀取相對于當前寫入數據塊的首數據的偏移量為K的地址單元中的數據時,可以采用以下方法獲取當前寫入數據塊的起始存儲地址,將獲取到的起始存儲地址加上偏移量K得到中間讀取結果;若所述中間讀取結果大于存儲器的存儲單元總數,則將中間讀取結果減去存儲器的存儲單元總數得到該數據的實際讀取地址,當所述中間讀取結果小于或等于存儲器的存儲單元總數,則直接將該中間讀取結果作為該數據的實際讀取地址;從所述實際讀取地址中讀取數據。接下來參照表2,以在第三次寫入數據后,需要讀取偏移量為K的數據為例對上述過程進行說明,其中,第三次寫入數據塊時的起始存儲地址為832;例如當K=128時,將起始存儲地址832加上偏移量128得到中間讀取結果960,由于該中間讀取結果小于存儲器的存儲單元總數1024,則直接以該結果作為待讀取數據的實際訪問地址960;例如當K=192時,將起始存儲地址832加上偏移量192得到中間讀取結果1024,由于該中間讀取結果等于存儲器的存儲單元總數1024,則將該中間讀取結果1024減去存儲器的存儲單元總數1024得到待讀取數據的實際訪問地址0。本發(fā)明另一實施例的數據存儲方法,包括步驟401、當第一次向存儲器中寫入數據塊時,從預設的數據塊起始存儲地址開始寫入所述數據塊(本實施例中預設的數據塊的起始存儲地址0),并記錄該數據塊的起始存儲地址。步驟402、當寫入新數據塊時,獲取上一次寫入數據塊的起始存儲地址。步驟403、將獲取到的起始地址減去所述新數據塊所包含的數據個數得到計算結果。上一次數據寫入數據塊的起始存儲地址存儲在寄存器reg_ptr,則,計算纟吉果reg_ptr=reg_ptr-64;步驟404、將所述計算結果的二進制數與存儲器的最大存儲地址的二進制數進行邏輯與運算得到本次寫數據塊的起始地址。本實施例中以存儲器包括1024個存儲單元,其最大存儲地址為1023為例,則該地址的二進制H為Ox3FF,則起始地址reg_ptr=reg_ptr&0x3ff;步驟405、從所述本次寫數據塊的起始地址所對應的存儲單元開始寫入所述新數據塊。在本實施例中,當需要從存儲器中讀取相對于當前寫入數據塊的首數據的偏移量為K的地址單元的數據時,可以采用以下方法獲取當前寫入數據塊時的起始地址,并將獲取到的起始地址加上偏移量K得到中間讀取結果;將所述中間讀取結果的二進制數與存儲器的最大存儲地址的二進制數ii(本例中為0x3FF)進行邏輯與運算得到讀數據的實際地址;從所述實際地址中讀取數據。本發(fā)明實施例可用于mp3解碼濾波過程中對中間過程數據的存儲,達到減少對存儲器的讀寫,進而減少運算時間、降低讀寫存儲器的功耗的效果。如圖4所示,本發(fā)明實施例還提供一種數據存儲裝置,包括地址確定單元501、寫入單元502:地址確定單元501,用于獲得當前待寫入數據塊的前一數據塊的起始存儲地址,并將所述起始存儲地址減去所述當前待寫入數據塊的大小,得到中間結果,若所述中間結果小于O,則按照預定的策略將所述中間結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待寫入數據塊的起始存儲地址;若所述中間結果大于或等于0,則直接以該中間結果作為所述當前待寫入數據塊的起始存儲地址。其中將所述中間結果映射到所述存儲器的有效地址內可以是將所述中間結果與所述存儲器的存儲單元總數相加;也可以是將所述中間結果的二進制數與所述存儲器的最大存儲地址的二進制數進行邏輯與運算。寫入單元502,用于從所述當前待寫入數據塊的起始存儲地址對應的存儲單元開始寫入所述當前待寫入數據塊。本發(fā)明實施例的數據存儲裝置進一步還包括讀取單元503,用于獲得所述當前待寫入數據塊的起始存儲地址,并將所述起始存儲地址加上當前待讀取數據相對于該數據塊的首數據的偏移量得到中間讀取結果,若所述中間讀取結果大于存儲器的存儲單元總數,則將所述中間讀取結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待讀取數據的實際讀取地址;若所述中間讀取結果小于或等于存儲器的存儲單元總數,則直接以該中間讀取結果作為當前待讀取數據的實際讀取地址,并從所述實際讀取地址中讀取所述待讀取數據。其中將所述中間讀取結果映射到所述存儲器的有效地址內可以是將所述中間讀取結果減去所述存儲器的存儲單元總數;也可以是將所述中間讀取結果的二進制數與所述存儲器的最大存儲地址的二進制數進行邏輯與運算。在包含1024個存儲單元的存儲器中,利用現有技術的方法每進行一次批量移動數據并刷新數據塊,共需要960次讀數據和1024次寫數據,而利用本方案,只需要64次寫數據即可完成。可以看出,本發(fā)明實施例采用移地址的方法進行數據塊的存儲,與現有技術中需先批量移動數據再寫入數據的方法相比,可以減少對存儲器的讀寫,進而減少運算時間、降低讀寫存儲器的功詩毛。員根據本發(fā)明的技術方案得出其它的實施方式,同樣屬于本發(fā)明的技術創(chuàng)新范圍。顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。權利要求1、一種數據存儲方法,其特征在于,包括獲得當前待寫入數據塊的前一數據塊的起始存儲地址;將所述起始存儲地址減去所述當前待寫入數據塊的大小,得到中間結果;若所述中間結果小于0,則將所述中間結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待寫入數據塊的起始存儲地址;若所述中間結果大于或等于0,則直接以該中間結果作為所述當前待寫入數據塊的起始存儲地址;從所述當前待寫入數據塊的起始存儲地址對應的存儲單元開始寫入所述當前待寫入數據塊。2、如權利要求1所述的方法,其特征在于,所述將所述中間結果映射到所述存儲器的有效地址內具體是將所述中間結果與所述存儲器的存儲單元總數相加。3、如權利要求1所述的方法,其特征在于,所述將所述中間結果映射到所述存儲器的有效地址內具體是將所述中間結果的二進制數與所述存儲器的最大存儲地址的二進制數進行邏輯與運算。4、如權利要求1至3任一項所述的方法,其特征在于,從所述當前待寫入數據塊的起始存儲地址對應的存儲單元開始寫入所述當前待寫入數據塊后還包括獲得所述當前待寫入數據塊的起始存儲地址;將所述起始存儲地址加上當前待讀取數據相對于該數據塊的首數據的偏移量,得到中間讀取結果;若所述中間讀取結果大于存儲器的存儲單元總數,則將所述中間讀取結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待讀取數據的實際讀取地址;若所述中間讀取結果小于或等于存儲器的存儲單元總數,則直接以該中間讀取結果作為當前待讀取數據的實際讀取地址;從所述實際讀取地址中讀取所述待讀取數據。5、如權利要求4所述的方法,其特征在于,所述將所述中間讀取結果映射到所述存儲器的有效地址內具體是將所述中間讀取結果減去所述存儲器的存儲單元總數;或者,將所述中間讀取結果的二進制數與所述存儲器的最大存儲地址的二進制數進行邏輯與運算。6、一種數據存儲裝置,其特征在于,包括地址確定單元,用于獲得當前待寫入數據塊的前一數據塊的起始存儲地址,并將所述起始存儲地址減去所述當前待寫入數據塊的大小,得到中間結果,若所述中間結果小于0,則將所述中間結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待寫入數據塊的起始存儲地址;若所述中間結果大于或等于0,則直接以該中間結果作為所述當前待寫入數據塊的起始存儲地址;寫入單元,用于從所述當前待寫入數據塊的起始存儲地址對應的存儲單元開始寫入所述當前待寫入數據。7、如權利要求6所述的裝置,其特征在于,該裝置還包括讀取單元,用于獲得所述當前待寫入數據塊的起始存儲地址,并將所述起始存儲地址加上當前待讀取數據相對于該數據塊的首數據的偏移量得到中間讀取結果,若所述中間讀取結果大于存儲器的存儲單元總數,則將所述中間讀取結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待讀取數據的實際讀取地址;若所述中間讀取結果小于或等于存儲器的存儲單元總數,則直接以該中間讀取結果作為當前待讀取數據的實際讀取地址,并從所述實際讀取地址中讀取所述待讀取數據。8、如權利要求6或7所述的裝置,其特征在于,將所述中間結果映射到所述存儲器的有效地址內具體是將所述中間結果與所述存儲器的存儲單元總數相加;或者,將所述中間結果的二進制數與所述存儲器的最大存儲地址的二進制數進行邏輯與運算。9、如權利要求6或7所述的裝置,其特征在于,將所述中間讀取結果映射到所述存儲器的有效地址內具體是將所述中間讀取結果減去所述存儲器的存儲單元總數;或者,將所述中間讀取結果的二進制數與所述存儲器的最大存儲地址的二進制數進行邏輯與運算。全文摘要本發(fā)明公開了一種數據存儲方法和裝置,該方法包括獲得當前待寫入數據塊的前一數據塊的起始存儲地址;將所述起始存儲地址減去所述當前待寫入數據塊的大小,得到中間結果;若所述中間結果小于0,則將所述中間結果映射到所述存儲器的有效地址內,以該映射的結果作為所述當前待寫入數據塊的起始存儲地址;若所述中間結果大于或等于0,則直接以該中間結果作為所述當前待寫入數據塊的起始存儲地址;從所述當前待寫入數據塊的起始存儲地址對應的存儲單元開始寫入所述當前待寫入數據塊。利用本發(fā)明實施例提供的方法,可以減少對存儲器的讀寫次數,從而降低向存儲器中寫數據時的功耗。文檔編號G06F12/06GK101556556SQ20091020297公開日2009年10月14日申請日期2009年5月22日優(yōu)先權日2009年5月22日發(fā)明者孫文福,張媛媛,李永盛申請人:炬力集成電路設計有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
荃湾区| 浦东新区| 磐石市| 奉化市| 耒阳市| 钟祥市| 顺平县| 梁平县| 镶黄旗| 上犹县| 德江县| 云南省| 兴文县| 高安市| 阿拉尔市| 重庆市| 扬州市| 云和县| 上饶县| 吉木萨尔县| 改则县| 仪征市| 米易县| 巫溪县| 兴宁市| 鲁山县| 舞钢市| 图木舒克市| 巴彦淖尔市| 依兰县| 凤城市| 白朗县| 耿马| 肥乡县| 镇江市| 佳木斯市| 馆陶县| 六枝特区| 米脂县| 贵阳市| 黑龙江省|