国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種寫數(shù)據(jù)的方法和設(shè)備的制造方法

      文檔序號:9371892閱讀:623來源:國知局
      一種寫數(shù)據(jù)的方法和設(shè)備的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計(jì)算機(jī)控制技術(shù)的光模塊領(lǐng)域,尤其涉及一種寫數(shù)據(jù)的方法和設(shè)備。
      【背景技術(shù)】
      [0002]在計(jì)算機(jī)控制技術(shù)的光模塊領(lǐng)域,光模塊對外提供了軟件訪問控制功能。主機(jī)(Host)可通過 I2C(Inter-1ntegrade Circuit,內(nèi)部集成電路)、MD1(Management DateInput/Output,管理數(shù)據(jù)輸入輸出總線)等總線接口訪問光模塊。其中,訪問形式包括讀數(shù)據(jù)、寫數(shù)據(jù)等。
      [0003]此外,有些光模塊存在對內(nèi)部的Flash閃存儲設(shè)備執(zhí)行寫操作的命令,比如,XFP模塊提供128字節(jié)的區(qū)域作為用戶的可寫入?yún)^(qū)域。
      [0004]根據(jù)Flash閃存儲設(shè)備的存儲特性,當(dāng)需要向Flash閃存儲設(shè)備中寫入數(shù)據(jù)時,需要首先確定寫入數(shù)據(jù)存儲在Flash閃存儲設(shè)備的目標(biāo)地址,并對Flash閃存儲設(shè)備中的目標(biāo)地址執(zhí)行擦除操作,然后再將待寫入的數(shù)據(jù)寫入至該目標(biāo)地址中。
      [0005]完成這一系列的操作存在以下問題:1、需要消耗大量的時間。由于擦除Flash閃存儲設(shè)備的最小單位是頁,每次在對Flash閃存儲設(shè)備進(jìn)行擦除操作前還需要將該頁內(nèi)原有的數(shù)據(jù)讀取至RAM中保存,待擦除操作執(zhí)行完畢之后,在將RAM中保存的數(shù)據(jù)逐個寫入,消耗時間比較長。2、對于Flash閃存儲設(shè)備存在對某一個地址反復(fù)擦寫的情況,這樣還會降低Flash的壽命。3、假設(shè)將Flash閃存儲設(shè)備設(shè)置的MCU (Micro Control Unit,微控制單元)內(nèi)部,在對Flash閃存儲設(shè)備執(zhí)行擦除操作時,MCU將處于待機(jī)狀態(tài),無法響應(yīng)系統(tǒng)發(fā)生的其他指令,將導(dǎo)致光模塊通信的異常。

      【發(fā)明內(nèi)容】

      [0006]本發(fā)明實(shí)施例提供了一種寫數(shù)據(jù)的方法和設(shè)備,用于解決目前光模塊在向Flash內(nèi)部寫數(shù)據(jù)時存在寫數(shù)據(jù)周期長且寫數(shù)據(jù)效率比較低的問題。
      [0007]根據(jù)本發(fā)明的第一方面,提供了一種寫數(shù)據(jù)的方法,包括:
      [0008]接收光模塊發(fā)送的寫數(shù)據(jù)指令,其中,所述寫數(shù)據(jù)指令中包含了待寫入閃存Flash的數(shù)據(jù);
      [0009]根據(jù)所述寫數(shù)據(jù)指令中包含了待寫入Flash的數(shù)據(jù)的邏輯地址,確定所述待寫入Flash的數(shù)據(jù)存儲在所述Flash內(nèi)部的物理地址;
      [0010]根據(jù)設(shè)定的物理地址與至少兩個存儲區(qū)域之間的對應(yīng)關(guān)系,得到確定的所述物理地址對應(yīng)的至少兩個存儲區(qū)域;并
      [0011]從得到的所述至少兩個存儲區(qū)域中選擇一個存儲區(qū)域,在所述選擇的存儲區(qū)域內(nèi)沒有存儲數(shù)據(jù)時,將所述待寫入Flash的數(shù)據(jù)直接寫入所述選擇的存儲區(qū)域。
      [0012]結(jié)合本發(fā)明第一方面可能的實(shí)施方式中,第一種可能的實(shí)施方式,所述設(shè)定的物理地址與至少兩個存儲區(qū)域之間的對應(yīng)關(guān)系的確定方式包括:
      [0013]預(yù)先將Flash內(nèi)部的存儲區(qū)域劃分成N個子存儲區(qū)域,其中,N為自然數(shù);
      [0014]從N份存儲區(qū)域中選擇至少兩個子存儲區(qū)域作為一個物理地址對應(yīng)的存儲區(qū)域,并建立所述物理地址與所述至少兩個子存儲區(qū)域之間的對應(yīng)關(guān)系,其中,不同物理地址對應(yīng)的子存儲區(qū)域不同。
      [0015]結(jié)合本發(fā)明第一方面的第一種可能的實(shí)施方式中,第二種可能的實(shí)施方式,所述將Flash內(nèi)部的存儲區(qū)域劃分成N個子存儲區(qū)域,包括:
      [0016]將Flash內(nèi)部的存儲區(qū)域平均劃分成N個子存儲區(qū)域。
      [0017]結(jié)合本發(fā)明第一方面可能的實(shí)施方式中,或者結(jié)合本發(fā)明第一方面的第一種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第一方面的第二種可能的實(shí)施方式中,第三種可能的實(shí)施方式,所述從得到的所述至少兩個存儲區(qū)域中選擇一個存儲區(qū)域,在所述選擇的存儲區(qū)域沒有存儲數(shù)據(jù)時,將所述待寫入Flash的數(shù)據(jù)直接寫入所述選擇的存儲區(qū)域,包括:
      [0018]從得到的所述至少兩個存儲區(qū)域中選擇一個存儲區(qū)域,并判斷所述選擇的存儲區(qū)域內(nèi)是否已存儲數(shù)據(jù);
      [0019]若所述選擇的存儲區(qū)域內(nèi)沒有存儲數(shù)據(jù)時,將所述待寫入Flash的數(shù)據(jù)直接寫入所述選擇的存儲區(qū)域。
      [0020]結(jié)合本發(fā)明第一方面的第三種可能的實(shí)施方式中,第四種可能的實(shí)施方式,所述方法還包括:
      [0021]若所述選擇的存儲區(qū)域內(nèi)已有存儲數(shù)據(jù)時,將所述存儲區(qū)域內(nèi)的存儲數(shù)據(jù)與所述待寫入Flash的數(shù)據(jù)進(jìn)行比較;
      [0022]當(dāng)所述存儲區(qū)域內(nèi)的存儲數(shù)據(jù)與所述待寫入Flash的數(shù)據(jù)相同時,觸發(fā)所述待寫入Flash的數(shù)據(jù)寫完成指令;
      [0023]當(dāng)所述存儲區(qū)域內(nèi)寫入數(shù)據(jù)與所述待寫入Flash的數(shù)據(jù)不相同時,繼續(xù)選擇下一個存儲區(qū)域,直至在確定選擇的所述下一個存儲區(qū)域內(nèi)沒有存儲數(shù)據(jù)時,將所述待寫入Flash的數(shù)據(jù)直接寫入選擇的所述下一個存儲區(qū)域。
      [0024]結(jié)合本發(fā)明第一方面的第四種可能的實(shí)施方式中,第五種可能的實(shí)施方式,所述方法還包括:
      [0025]在當(dāng)所述存儲區(qū)域內(nèi)寫入數(shù)據(jù)與所述待寫入Flash的數(shù)據(jù)相同時觸發(fā)所述待寫入Flash的數(shù)據(jù)寫完成指令時,記錄所述存儲區(qū)域與所述待寫入Flash的數(shù)據(jù)之間的對應(yīng)關(guān)系,以便于在讀取所述待寫入Flash的數(shù)據(jù)時,確定讀取所述待寫入Flash的數(shù)據(jù)的存儲區(qū)域。
      [0026]結(jié)合本發(fā)明第一方面可能的實(shí)施方式中,或者結(jié)合本發(fā)明第一方面的第一種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第一方面的第二種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第一方面的第三種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第一方面的第四種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第一方面的第五種可能的實(shí)施方式中,第六種可能的實(shí)施方式,所述Flash內(nèi)部的存儲區(qū)域?qū)儆谝巡脸鎯^(qū)域,處于可被寫入數(shù)據(jù)的狀態(tài)。
      [0027]根據(jù)本發(fā)明的第二方面,提供了一種寫數(shù)據(jù)的設(shè)備,包括:
      [0028]接收模塊,用于接收光模塊發(fā)送的寫數(shù)據(jù)指令,其中,所述寫數(shù)據(jù)指令中包含了待寫入閃存Flash的數(shù)據(jù);
      [0029]確定模塊,用于根據(jù)所述寫數(shù)據(jù)指令中包含了待寫入Flash的數(shù)據(jù)的邏輯地址,確定所述接收模塊接收到的所述待寫入Flash的數(shù)據(jù)存儲在所述Flash內(nèi)部的物理地址;
      [0030]寫數(shù)據(jù)模塊,用于根據(jù)設(shè)定的物理地址與至少兩個存儲區(qū)域之間的對應(yīng)關(guān)系,得到所述確定模塊確定的所述物理地址對應(yīng)的至少兩個存儲區(qū)域;并從得到的所述至少兩個存儲區(qū)域中選擇一個存儲區(qū)域,在所述選擇的存儲區(qū)域內(nèi)沒有存儲數(shù)據(jù)時,將所述接收模塊接收到的所述待寫入Flash的數(shù)據(jù)直接寫入所述選擇的存儲區(qū)域。
      [0031]結(jié)合本發(fā)明第二方面可能的實(shí)施方式中,第一種可能的實(shí)施方式,所述設(shè)備還包括對應(yīng)關(guān)系確定t吳塊,其中:
      [0032]所述對應(yīng)關(guān)系確定模塊,用于確定物理地址與至少兩個存儲區(qū)域之間的對應(yīng)關(guān)系,具體用于:
      [0033]預(yù)先將Flash內(nèi)部的存儲區(qū)域劃分成N個子存儲區(qū)域,其中,N為自然數(shù);
      [0034]從N份存儲區(qū)域中選擇至少兩個子存儲區(qū)域作為一個物理地址對應(yīng)的存儲區(qū)域,并建立所述物理地址與所述至少兩個子存儲區(qū)域之間的對應(yīng)關(guān)系,其中,不同物理地址對應(yīng)的子存儲區(qū)域不同。
      [0035]結(jié)合本發(fā)明第二方面的第一種可能的實(shí)施方式中,第二種可能的實(shí)施方式,所述對應(yīng)關(guān)系確定模塊,具體用于將Flash內(nèi)部的存儲區(qū)域平均劃分成N個子存儲區(qū)域。
      [0036]結(jié)合本發(fā)明第二方面可能的實(shí)施方式中,或者結(jié)合本發(fā)明第二方面的第一種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第二方面的第二種可能的實(shí)施方式中,第三種可能的實(shí)施方式,所述寫數(shù)據(jù)模塊,具體用于從得到的所述至少兩個存儲區(qū)域中選擇一個存儲區(qū)域,并判斷所述選擇的存儲區(qū)域內(nèi)是否已存儲數(shù)據(jù);
      [0037]若所述選擇的存儲區(qū)域內(nèi)沒有存儲數(shù)據(jù)時,將所述待寫入Flash的數(shù)據(jù)直接寫入所述選擇的存儲區(qū)域。
      [0038]結(jié)合本發(fā)明第二方面的第三種可能的實(shí)施方式中,第四種可能的實(shí)施方式,所述寫數(shù)據(jù)模塊,還用于若所述選擇的存儲區(qū)域內(nèi)已有存儲數(shù)據(jù)時,將所述存儲區(qū)域內(nèi)的存儲數(shù)據(jù)與所述待寫入Flash的數(shù)據(jù)進(jìn)行比較;
      [0039]當(dāng)所述存儲區(qū)域內(nèi)的存儲數(shù)據(jù)與所述待寫入Flash的數(shù)據(jù)相同時,觸發(fā)所述待寫入Flash的數(shù)據(jù)寫完成指令;
      [0040]當(dāng)所述存儲區(qū)域內(nèi)寫入數(shù)據(jù)與所述待寫入Flash的數(shù)據(jù)不相同時,繼續(xù)選擇下一個存儲區(qū)域,直至在確定選擇的所述下一個存儲區(qū)域內(nèi)沒有存儲數(shù)據(jù)時,將所述待寫入Flash的數(shù)據(jù)直接寫入選擇的所述下一個存儲區(qū)域。
      [0041]結(jié)合本發(fā)明第二方面的第四種可能的實(shí)施方式中,第五種可能的實(shí)施方式,所述設(shè)備還包括:
      [0042]記錄模塊,用于當(dāng)所述寫數(shù)據(jù)模塊在所述存儲區(qū)域內(nèi)寫入數(shù)據(jù)與所述待寫入Flash的數(shù)據(jù)相同時觸發(fā)所述待寫入Flash的數(shù)據(jù)寫完成指令時,記錄所述存儲區(qū)域與所述待寫入Flash的數(shù)據(jù)之間的對應(yīng)關(guān)系,以便于在讀取所述待寫入Flash的數(shù)據(jù)時,確定讀取所述待寫入Flash的數(shù)據(jù)的存儲區(qū)域。
      [0043]結(jié)合本發(fā)明第二方面可能的實(shí)施方式中,或者結(jié)合本發(fā)明第二方面的第一種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第二方面的第二種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第二方面的第三種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第二方面的第四種可能的實(shí)施方式中,或者結(jié)合本發(fā)明第二方面的第五種可能的實(shí)施方式中,第六種可能的實(shí)施方式,所述Flash內(nèi)部的存儲區(qū)域?qū)儆谝巡脸鎯^(qū)域,處于可被寫入數(shù)據(jù)的狀態(tài)。
      [0044]根據(jù)本發(fā)明的第三方面,提供了一種寫數(shù)據(jù)的設(shè)備,包括:
      [0045]通信總線,用于存儲器與處理器之間的通信;
      [0046]存儲器,用于存儲寫數(shù)據(jù)的應(yīng)用程序代碼;
      [0047]處理器,用于執(zhí)行存儲器中存儲的寫數(shù)據(jù)的應(yīng)用程序代碼,具體執(zhí)行:
      [0048]接收光模塊發(fā)送的寫數(shù)據(jù)指令,其中,所述寫數(shù)據(jù)指令中包含了待寫入閃存Flash的數(shù)據(jù);
      [0049]根據(jù)所述寫數(shù)據(jù)指令中包含了待寫入Flash的數(shù)據(jù)的邏輯地址,確定所述待寫入Flash的數(shù)據(jù)存儲在所述Flash內(nèi)部的物理地址;
      [0050]根據(jù)設(shè)定的物理地址與至少兩個存儲區(qū)域之間的對應(yīng)關(guān)系,得到確定的所述物理地址對應(yīng)的至少兩個存儲區(qū)域;并
      當(dāng)前第1頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1