一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法及裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法及裝置,屬于信息安全領(lǐng)域。所述方法包括:智能卡接收到上位機(jī)發(fā)送的命令,從內(nèi)部保存的優(yōu)化列表中獲取當(dāng)前優(yōu)化對(duì)象,若當(dāng)前優(yōu)化對(duì)象不在物理頁(yè)的起始位置,則如果當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度大于等于預(yù)設(shè)頁(yè)長(zhǎng),則將當(dāng)前優(yōu)化對(duì)象存放在空閑存儲(chǔ)空間的物理頁(yè)的起始位置,修改引用關(guān)系;如果當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度小于預(yù)設(shè)頁(yè)長(zhǎng),則獲取優(yōu)化列表中能夠與當(dāng)前優(yōu)化對(duì)象存儲(chǔ)在一頁(yè)的對(duì)象,作為組合對(duì)象,將當(dāng)前優(yōu)化對(duì)象和組合對(duì)象存放在空閑存儲(chǔ)空間的物理頁(yè)的起始位置,修改引用關(guān)系。采用本發(fā)明的技術(shù)方案,能夠?qū)崿F(xiàn)在應(yīng)用運(yùn)行時(shí)對(duì)讀寫(xiě)訪問(wèn)智能卡的操作頻度進(jìn)行優(yōu)化,減少對(duì)象表的讀寫(xiě)次數(shù),提高了智能卡的使用壽命。
【專利說(shuō)明】—種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法及裝置。
【背景技術(shù)】
[0002]目前,智能卡應(yīng)用開(kāi)發(fā)商在開(kāi)發(fā)智能卡時(shí),經(jīng)常會(huì)面臨這樣的問(wèn)題,由于智能卡芯片性能和存儲(chǔ)空間局限性,為了智能卡應(yīng)用在有限的時(shí)間內(nèi)完成運(yùn)行,開(kāi)發(fā)工程師不得不對(duì)應(yīng)用進(jìn)行反復(fù)優(yōu)化,減少對(duì)NVM(Nonvolatile Memory,非易失性存儲(chǔ)器,目前在智能卡上采用的主要是EEPROM和FLASH)的讀次數(shù)或?qū)懘螖?shù)和程序的調(diào)用復(fù)雜度。
[0003]現(xiàn)有技術(shù)中,智能卡的優(yōu)化操作是在智能卡閑置情況下進(jìn)行優(yōu)化的,如果智能卡處于運(yùn)行的過(guò)程中,則無(wú)法對(duì)智能卡進(jìn)行優(yōu)化,這樣會(huì)導(dǎo)致在對(duì)智能卡進(jìn)行數(shù)據(jù)讀寫(xiě)時(shí),由于未進(jìn)行優(yōu)化,增加了智能卡中對(duì)存儲(chǔ)器的物理頁(yè)的讀寫(xiě)訪問(wèn)次數(shù),減少了智能卡的使用壽命。
【發(fā)明內(nèi)容】
[0004]本發(fā)明為了解決現(xiàn)有技術(shù)中存在的不足,提供了一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法及裝置。
[0005]本發(fā)明采用的技術(shù)方案是:一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法,包括:
[0006]步驟S1:智能卡上電;
[0007]步驟S2:所述智能卡等待接收上位機(jī)發(fā)送的命令;
[0008]步驟S3:當(dāng)所述智能卡接收到命令后,將內(nèi)部保存的優(yōu)化列表中優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象;
[0009]步驟S4:所述智能卡判斷所述當(dāng)前優(yōu)化對(duì)象的起始地址是否為物理頁(yè)的起始位置,如果是,則將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,執(zhí)行步驟S13,否則執(zhí)行步驟S5 ;
[0010]步驟S5:所述智能卡獲取所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度,判斷所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度是否大于或等于預(yù)設(shè)頁(yè)長(zhǎng),如果是,則執(zhí)行步驟S6,否則執(zhí)行步驟S8 ;
[0011]步驟S6:所述智能卡判斷所有空閑存儲(chǔ)空間中是否存在以物理頁(yè)的起始位置開(kāi)始,長(zhǎng)度大于當(dāng)前優(yōu)化對(duì)象的連續(xù)存儲(chǔ)空間,如果是,則執(zhí)行步驟S7,否則將當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,執(zhí)行步驟S13 ;
[0012]步驟S7:所述智能卡將當(dāng)前優(yōu)化對(duì)象復(fù)制到所述連續(xù)存儲(chǔ)空間,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量,更新所述當(dāng)前優(yōu)化對(duì)象的引用關(guān)系,并將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,執(zhí)行步驟S13 ;
[0013]步驟S8:所述智能卡從所述優(yōu)化列表中查找長(zhǎng)度之和不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度之差的多個(gè)對(duì)象,或,長(zhǎng)度不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度之差的對(duì)象,作為組合對(duì)象;
[0014]步驟S9:所述智能卡判斷所有空閑存儲(chǔ)空間中是否存在以頁(yè)起始位置開(kāi)始,長(zhǎng)度大于或等于當(dāng)前優(yōu)化對(duì)象與所述組合對(duì)象長(zhǎng)度之和的連續(xù)存儲(chǔ)空間,如果是,則執(zhí)行步驟S10,否則將當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,執(zhí)行步驟S13 ;
[0015]步驟SlO:所述智能卡將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象復(fù)制到所述連續(xù)存儲(chǔ)空間;
[0016]步驟Sll:所述智能卡根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量和所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度,計(jì)算所述組合對(duì)象相對(duì)于基地址的偏移量,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量更新當(dāng)前優(yōu)化對(duì)象的引用關(guān)系,并根據(jù)所述組合對(duì)象相對(duì)于基地址的偏移量,更新所述組合對(duì)象的引用關(guān)系;
[0017]或,所述智能卡根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量和所述組合對(duì)象的長(zhǎng)度,計(jì)算當(dāng)前優(yōu)化對(duì)象相對(duì)于基地址的偏移量,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量更新所述組合對(duì)象的引用關(guān)系,并根據(jù)當(dāng)前優(yōu)化對(duì)象相對(duì)于基地址的偏移量,更新當(dāng)前優(yōu)化對(duì)象的引用關(guān)系;
[0018]步驟S12:所述智能卡將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位;
[0019]步驟S13:所述智能卡判斷所述優(yōu)化列表中是否還有優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象,如果是,則從所述優(yōu)化列表中獲取優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象,返回執(zhí)行步驟S4,否則向所述上位機(jī)返回優(yōu)化成功響應(yīng),返回步驟S2。
[0020]所述步驟S2中,當(dāng)所述智能卡接收到命令時(shí),還包括:所述智能卡判斷接收到的命令是否為預(yù)設(shè)命令,如果是,則執(zhí)行步驟S3,否則執(zhí)行步驟al ;
[0021]步驟al:所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則更新所述優(yōu)化列表中的讀次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是寫(xiě)操作,則更新所述優(yōu)化列表中的寫(xiě)次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是其他操作,執(zhí)行相應(yīng)操作,向所述上位機(jī)返回相應(yīng)響應(yīng),返回步驟S2。
[0022]所述步驟S2中,當(dāng)所述智能卡接收到命令時(shí),還包括:所述智能卡判斷接收到的命令的類型,如果是采集命令,則執(zhí)行步驟bl,如果是優(yōu)化命令,則執(zhí)行步驟S3,如果是應(yīng)用命令,則執(zhí)行步驟b2;
[0023]步驟bl:所述智能卡將采集標(biāo)識(shí)位置位,并向所述上位機(jī)返回開(kāi)始采集響應(yīng),返回步驟S2 ;
[0024]步驟b2:所述智能卡獲取采集標(biāo)識(shí)位,判斷所述采集標(biāo)識(shí)位是否置位,如果是,則執(zhí)行步驟b3,否則向所述上位機(jī)返回不需要采集響應(yīng),返回步驟S2 ;
[0025]步驟b3:所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則更新所述優(yōu)化列表中的讀次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是寫(xiě)操作,則更新所述優(yōu)化列表中的寫(xiě)次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是其他操作,執(zhí)行相應(yīng)操作,向所述上位機(jī)返回相應(yīng)響應(yīng),返回步驟S2 ;
[0026]所述向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng)之后,還包括將所述采集標(biāo)識(shí)位復(fù)位。
[0027]所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則更新所述優(yōu)化列表中的讀次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是寫(xiě)操作,則更新所述優(yōu)化列表中的寫(xiě)次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是其他操作,執(zhí)行相應(yīng)操作,向所述上位機(jī)返回相應(yīng)響應(yīng),返回步驟S2,具體為:
[0028]步驟Cl:所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則執(zhí)行步驟c2,如果是寫(xiě)操作,則執(zhí)行步驟c7,如果是其他操作,執(zhí)行相應(yīng)操作,返回相應(yīng)響應(yīng),返回步驟S2 ;
[0029]步驟c2:所述智能卡根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象;
[0030]步驟c3:所述智能卡從所述對(duì)象表中獲取所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址;
[0031]步驟c4:所述智能卡判斷從所述優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,如果是,則執(zhí)行步驟c5,否則執(zhí)行步驟c6 ;
[0032]步驟c5:所述智能卡更新所述優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù),執(zhí)行步驟cl2;
[0033]步驟c6:所述智能卡根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位,執(zhí)行步驟c 12 ;
[0034]步驟c7:所述智能卡根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象;
[0035]步驟c8:所述智能卡從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址;
[0036]步驟c9:所述智能卡判斷從所述優(yōu)化列表中是否能找到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,如果是,則執(zhí)行步驟clO,否則執(zhí)行步驟cll ;
[0037]步驟clO:所述智能卡更新優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù),執(zhí)行步驟cl2 ;
[0038]步驟cll:所述智能卡根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為0,并將優(yōu)化標(biāo)識(shí)復(fù)位,執(zhí)行步驟 cl2 ;
[0039]步驟cl2:所述智能卡向上位機(jī)返回?cái)?shù)據(jù)采集成功響應(yīng),返回步驟S2。
[0040]所述步驟S2中,當(dāng)接收到命令時(shí),還包括:
[0041]步驟dl:所述智能卡調(diào)用相應(yīng)的應(yīng)用,獲取所述應(yīng)用的使用次數(shù),判斷所述使用次數(shù)是否達(dá)到優(yōu)化預(yù)設(shè)值,如果是,則執(zhí)行步驟d2,否則將所述應(yīng)用的使用次數(shù)自加預(yù)設(shè)步長(zhǎng),執(zhí)行應(yīng)用的相應(yīng)操作,向上位機(jī)返回相應(yīng)數(shù)據(jù),返回步驟S2 ;
[0042]步驟d2:所述智能卡統(tǒng)計(jì)所述應(yīng)用中的對(duì)象在對(duì)象表中的存儲(chǔ)情況,判斷是否存在存儲(chǔ)位置大于預(yù)設(shè)值的對(duì)象,如果是,則執(zhí)行步驟d3,否則將所述應(yīng)用的使用次數(shù)自加預(yù)設(shè)步長(zhǎng),執(zhí)行應(yīng)用的相應(yīng)操作,向上位機(jī)返回相應(yīng)數(shù)據(jù),返回步驟S2 ;
[0043]步驟d3:所述智能卡根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則更新所述優(yōu)化列表中的讀次數(shù),執(zhí)行步驟d4,如果是寫(xiě)操作,則更新所述優(yōu)化列表中的寫(xiě)次數(shù),執(zhí)行步驟d4,否則直接執(zhí)行步驟d4,如果是其他操作,則執(zhí)行相應(yīng)操作,執(zhí)行步驟d4 ;
[0044]步驟d4:所述智能卡將所述應(yīng)用的使用次數(shù)加預(yù)設(shè)步長(zhǎng),判斷所述使用次數(shù)與所述優(yōu)化預(yù)設(shè)值之差是否大于采集預(yù)設(shè)值,如果是,則執(zhí)行步驟S3,否則返回步驟S2。
[0045]所述步驟d3,具體為:
[0046]步驟d3-l:所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用,判斷需要執(zhí)行的操作類型,如果是讀操作,則執(zhí)行步驟d3-2,如果是寫(xiě)操作,則執(zhí)行步驟d3-7,如果是其他操作,則執(zhí)行相應(yīng)操作,執(zhí)行步驟d4 ;
[0047]步驟d3-2:所述智能卡根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象;
[0048]步驟d3-3:所述智能卡從所述對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址;
[0049]步驟d3-4:所述智能卡判斷從優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,如果是,則執(zhí)行步驟d3-5,否則執(zhí)行步驟d3-6 ;
[0050]步驟d3-5:所述智能卡更新優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù),執(zhí)行步驟d4;
[0051]步驟d3-6:所述智能卡根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位,執(zhí)行步驟d4;
[0052]步驟d3-7:所述智能卡根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象;
[0053]步驟d3-8:所述智能卡從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址;
[0054]步驟d3-9:所述智能卡判斷從優(yōu)化列表中是否能找到寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,如果是,則執(zhí)行步驟d3-10,否則執(zhí)行步驟d3-ll ;
[0055]步驟d3-10:所述智能卡更新優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù),執(zhí)行步驟d4;
[0056]步驟d3-ll:所述智能卡根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為0,并將優(yōu)化標(biāo)識(shí)復(fù)位,執(zhí)行步驟d4。
[0057]所述步驟S3,具體包括:
[0058]所述智能卡接收到命令后,根據(jù)接收到的命令,獲取需要優(yōu)化的操作類型,如果是讀優(yōu)化操作,則執(zhí)行步驟el,如果是寫(xiě)優(yōu)化操作,則執(zhí)行步驟e2 ;
[0059]步驟el:所述智能卡獲取所述優(yōu)化列表中的讀次數(shù),根據(jù)所述讀次數(shù),對(duì)所述優(yōu)化列表中的信息進(jìn)行排序,并獲取排序后的優(yōu)化列表中讀次數(shù)最大且優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象;
[0060]步驟e2:所述智能卡獲取所述優(yōu)化列表中的寫(xiě)次數(shù),根據(jù)所述寫(xiě)次數(shù),對(duì)所述優(yōu)化列表中的信息進(jìn)行排序,并獲取排序后的優(yōu)化列表中寫(xiě)次數(shù)最大且優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
[0061]所述步驟S2,具體為:當(dāng)所述智能卡接收到命令后,將內(nèi)部保存的優(yōu)化列表中第一個(gè)優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象;
[0062]所述步驟S13,具體為:所述智能卡判斷所述優(yōu)化列表中是否還有優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象,如果是,則將所述當(dāng)前優(yōu)化對(duì)象的下一個(gè)優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象,返回執(zhí)行步驟S4,否則向所述上位機(jī)返回優(yōu)化成功響應(yīng),返回步驟S2。
[0063]所述步驟S4之前還包括:從對(duì)象表中獲取所述對(duì)象的長(zhǎng)度,將所述對(duì)象的長(zhǎng)度記錄到對(duì)象長(zhǎng)度表中;
[0064]所述步驟S5中,所述獲取所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度,具體為:從所述對(duì)象長(zhǎng)度表中獲取當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度。
[0065]所述步驟S8,具體包括:
[0066]步驟fl:所述智能卡獲取所述對(duì)象長(zhǎng)度表中的第一個(gè)長(zhǎng)度作為當(dāng)前長(zhǎng)度;
[0067]步驟f2:所述智能卡判斷當(dāng)前長(zhǎng)度是否不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象長(zhǎng)度之差,如果是,則將當(dāng)前長(zhǎng)度對(duì)應(yīng)的對(duì)象作為組合對(duì)象,執(zhí)行步驟f3,否則直接執(zhí)行步驟f3 ;
[0068]步驟f3:所述智能卡判斷所述對(duì)象長(zhǎng)度表中是否還有未查找的長(zhǎng)度,如果是,則將當(dāng)前長(zhǎng)度的下一長(zhǎng)度作為當(dāng)前長(zhǎng)度,執(zhí)行步驟f2,否則得到組合對(duì)象,執(zhí)行步驟S9。
[0069]所述步驟S9,具體包括:
[0070]步驟gl:所述智能卡將所有空閑存儲(chǔ)空間中的第一部分空閑存儲(chǔ)空間作為當(dāng)前空閑存儲(chǔ)空間;
[0071]步驟g2:所述智能卡判斷所述當(dāng)前空閑存儲(chǔ)空間中是否有空物理頁(yè),如果是,則執(zhí)行步驟g3,否則執(zhí)行步驟g5 ;
[0072]步驟g3:所述智能卡將當(dāng)前空閑存儲(chǔ)空間中的第一個(gè)空物理頁(yè)作為當(dāng)前空物理頁(yè);
[0073]步驟g4:所述智能卡判斷在當(dāng)前空閑存儲(chǔ)空間中是否存在從當(dāng)前空物理頁(yè)的起始位置起長(zhǎng)度大于或等于當(dāng)前優(yōu)化對(duì)象與所述組合對(duì)象長(zhǎng)度之和的連續(xù)存儲(chǔ)空間,如果是,則執(zhí)行步驟S10,否則執(zhí)行步驟g5 ;
[0074]步驟g5:所述智能卡判斷所有空閑存儲(chǔ)空間中是否還有未處理的空閑存儲(chǔ)空間,如果是,則將當(dāng)前空閑存儲(chǔ)空間的下一空閑存儲(chǔ)空間作為當(dāng)前空閑存儲(chǔ)空間,執(zhí)行步驟g2,否則將當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,返回步驟S2。
[0075]所述步驟S7還包括:所述智能卡將當(dāng)前優(yōu)化對(duì)象置為空閑存儲(chǔ)空間;
[0076]所述步驟S12還包括:所述智能卡將當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象置為空閑存儲(chǔ)空間。
[0077]—種優(yōu)化數(shù)據(jù)讀寫(xiě)的裝置,包括:
[0078]接收模塊,用于接收上位機(jī)發(fā)送的命令;
[0079]第一處理模塊,用于當(dāng)所述接收模塊接收到命令后,將內(nèi)部保存的優(yōu)化列表中優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象;
[0080]第一判斷模塊,用于當(dāng)所述第一處理模塊處理得到當(dāng)前優(yōu)化對(duì)象后,判斷所述當(dāng)前優(yōu)化對(duì)象的起始地址是否為物理頁(yè)的起始位置;
[0081]第一獲取模塊,用于當(dāng)所述第一判斷模塊判斷為否時(shí),獲取所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度;
[0082]第二判斷模塊,用于當(dāng)所述第一獲取模塊獲取到所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度時(shí),判斷所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度是否大于或等于預(yù)設(shè)頁(yè)長(zhǎng);
[0083]第三判斷模塊,用于當(dāng)所述第二判斷模塊判斷為是時(shí),判斷所有空閑存儲(chǔ)空間中是否存在以物理頁(yè)的起始位置開(kāi)始,長(zhǎng)度大于當(dāng)前優(yōu)化對(duì)象的連續(xù)存儲(chǔ)空間;
[0084]第一更新模塊,用于當(dāng)所述第三判斷模塊判斷為是時(shí),將當(dāng)前優(yōu)化對(duì)象復(fù)制到所述連續(xù)存儲(chǔ)空間,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量,更新所述當(dāng)前優(yōu)化對(duì)象的引用關(guān)系,并所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位;
[0085]查找模塊,用于當(dāng)所述第二判斷模塊判斷為否時(shí),從所述優(yōu)化列表中查找長(zhǎng)度之和不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度之差的多個(gè)對(duì)象,或,長(zhǎng)度不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度之差的對(duì)象,作為組合對(duì)象;
[0086]第四判斷模塊,用于當(dāng)所述查找模塊查找到所述組合對(duì)象后,判斷所有空閑存儲(chǔ)空間中是否存在以頁(yè)起始位置開(kāi)始,長(zhǎng)度大于或等于當(dāng)前優(yōu)化對(duì)象與所述組合對(duì)象長(zhǎng)度之和的連續(xù)存儲(chǔ)空間;
[0087]第二處理模塊,用于當(dāng)所述第四判斷模塊判斷為是時(shí),將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象復(fù)制到所述連續(xù)存儲(chǔ)空間;
[0088]計(jì)算模塊,用于當(dāng)所述第二處理模塊處理完成后,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量和所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度,計(jì)算所述組合對(duì)象相對(duì)于基地址的偏移量,或,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量和所述組合對(duì)象的長(zhǎng)度,計(jì)算當(dāng)前優(yōu)化對(duì)象相對(duì)于基地址的偏移量;
[0089]第二更新模塊,用于當(dāng)所述計(jì)算模塊計(jì)算得到所述組合對(duì)象相對(duì)于基地址的偏移量后,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量更新當(dāng)前優(yōu)化對(duì)象的引用關(guān)系,并根據(jù)所述組合對(duì)象相對(duì)于基地址的偏移量,更新所述組合對(duì)象的引用關(guān)系,或,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量更新所述組合對(duì)象的引用關(guān)系,并根據(jù)當(dāng)前優(yōu)化對(duì)象相對(duì)于基地址的偏移量,更新當(dāng)前優(yōu)化對(duì)象的引用關(guān)系;
[0090]置位模塊,用于當(dāng)所述第一判斷模塊判斷為是時(shí),將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位;還用于當(dāng)所述第三判斷模塊判斷為否時(shí),將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位;還用于當(dāng)所述第一更新模塊更新完成后,將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位;還用于當(dāng)所述第二更新模塊更新完成后,將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位;
[0091]第五判斷模塊,用于當(dāng)所述置位模塊將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位后,判斷所述優(yōu)化列表中是否還有優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象;
[0092]第二獲取模塊,用于當(dāng)所述第五判斷模塊判斷為是時(shí),從所述優(yōu)化列表中獲取優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象;
[0093]發(fā)送模塊,用于當(dāng)所述第五判斷模塊判斷為否時(shí),向所述上位機(jī)返回優(yōu)化成功響應(yīng)。
[0094]第六判斷模塊,用于當(dāng)所述接收模塊接收到命令時(shí),判斷接收到的命令是否為預(yù)設(shè)命令;
[0095]第一調(diào)用模塊,用于當(dāng)所述第六判斷模塊判斷為否時(shí),根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用;
[0096]第七判斷模塊,用于當(dāng)所述第一調(diào)用單元調(diào)用相應(yīng)的應(yīng)用后,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型;
[0097]第三更新模塊,用于當(dāng)所述第七判斷模塊判斷為讀操作時(shí),更新所述優(yōu)化列表中的讀次數(shù);
[0098]第四更新模塊,用于當(dāng)所述第七判斷模塊判斷為寫(xiě)操作時(shí),更新所述優(yōu)化列表中的與次數(shù);
[0099]所述發(fā)送模塊,還用于當(dāng)所述第三更新單元更新完成后,向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng);還用于當(dāng)所述第四更新單元更新完成后,向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng);還用于當(dāng)所述第七判斷模塊判斷為其他操作時(shí),執(zhí)行相應(yīng)操作,向上位機(jī)返回相應(yīng)響應(yīng);
[0100]所述第一處理模塊,具體用于當(dāng)所述第六判斷模塊判斷為是時(shí),將內(nèi)部保存的優(yōu)化列表中優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
[0101]第八判斷模塊,用于當(dāng)所述接收模塊接收到命令時(shí),判斷接收到的命令的類型;
[0102]第九判斷模塊,用于當(dāng)所述第八判斷模塊判斷為應(yīng)用命令時(shí),獲取采集標(biāo)識(shí)位,判斷所述采集標(biāo)識(shí)位是否置位;
[0103]第二調(diào)用模塊,用于當(dāng)所述第九判斷模塊判斷為是時(shí),根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用;
[0104]第十判斷模塊,用于當(dāng)所述第二調(diào)用單元調(diào)用相應(yīng)的應(yīng)用后,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型;
[0105]第五更新模塊,用于當(dāng)所述第十判斷模塊判斷為讀操作時(shí),更新所述優(yōu)化列表中的讀次數(shù);
[0106]第六更新模塊,用于當(dāng)所述第十判斷模塊判斷為寫(xiě)操作時(shí),更新所述優(yōu)化列表中的與次數(shù);
[0107]所述置位模塊,還用于當(dāng)所述第八判斷模塊判斷為采集命令時(shí),將采集標(biāo)識(shí)位置位;
[0108]所述發(fā)送模塊,還用于當(dāng)所述置位模塊將采集標(biāo)識(shí)位置位時(shí),向上位機(jī)返回開(kāi)始采集響應(yīng);還用于當(dāng)所述第九判斷模塊判斷為否時(shí),向上位機(jī)返回不需要采集響應(yīng);還用于當(dāng)所述第五更新模塊更新完成后,向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng);還用于當(dāng)所述第六更新模塊更新完成后,向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng);
[0109]所述裝置還包括:復(fù)位模塊,用于當(dāng)所述發(fā)送模塊向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng)后,將所述采集標(biāo)識(shí)位復(fù)位。
[0110]所述第三更新模塊,具體包括:
[0111]第一獲取單元,用于當(dāng)所述第七判斷模塊或所述第九判斷模塊判斷為讀操作時(shí),根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象;還用于從所述對(duì)象表中獲取所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址;
[0112]第一判斷單元,用于當(dāng)所述第一獲取單元獲取到所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址;
[0113]第一更新單元,用于當(dāng)所述第一判斷單元判斷為是時(shí),更新優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù);
[0114]第一創(chuàng)建單元,用于當(dāng)所述第一判斷單元判斷為否時(shí),根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位;
[0115]所述第四更新模塊,具體包括:
[0116]第二獲取單元,用于當(dāng)所述第七判斷模塊或所述第九判斷模塊判斷為寫(xiě)操作時(shí),根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象;還用于從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址;
[0117]第二判斷單元,用于當(dāng)所述第二獲取單元獲取到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址;
[0118]第二更新單元,用于當(dāng)所述第二判斷單元判斷為是時(shí),更新所述優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù);
[0119]第二創(chuàng)建單元,用于當(dāng)所述第二判斷單元判斷為否時(shí),根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位。
[0120]所述第五更新模塊,具體包括:
[0121]第三獲取單元,用于當(dāng)所述第七判斷模塊或所述第九判斷模塊判斷為讀操作時(shí),根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象;還用于從所述對(duì)象表中獲取所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址;
[0122]第三判斷單元,用于當(dāng)所述第一獲取單元獲取到所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址;
[0123]第三更新單元,用于當(dāng)所述第一判斷單元判斷為是時(shí),更新優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù);
[0124]第三創(chuàng)建單元,用于當(dāng)所述第一判斷單元判斷為否時(shí),根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位;
[0125]所述第六更新模塊,具體包括:
[0126]第四獲取單元,用于當(dāng)所述第七判斷模塊或所述第九判斷模塊判斷為寫(xiě)操作時(shí),根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象;還用于從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址;
[0127]第四判斷單元,用于當(dāng)所述第二獲取單元獲取到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址;
[0128]第四更新單元,用于當(dāng)所述第二判斷單元判斷為是時(shí),更新所述優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù);
[0129]第四創(chuàng)建單元,用于當(dāng)所述第二判斷單元判斷為否時(shí),根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位。
[0130]第三調(diào)用模塊,用于當(dāng)所述接收模塊接收到命令時(shí),調(diào)用相應(yīng)的應(yīng)用;
[0131]第三獲取模塊,用于當(dāng)所述第三調(diào)用模塊調(diào)用相應(yīng)的應(yīng)用后,獲取所述應(yīng)用的使用次數(shù);
[0132]第十一判斷模塊,用于當(dāng)所述第三獲取模塊獲取到所述應(yīng)用的使用次數(shù)后,判斷所述使用次數(shù)是否達(dá)到優(yōu)化預(yù)設(shè)值;
[0133]統(tǒng)計(jì)模塊,用于當(dāng)所述第十一判斷模塊判斷為是時(shí),統(tǒng)計(jì)所述應(yīng)用中的對(duì)象在對(duì)象表中的存儲(chǔ)情況;
[0134]第十二判斷模塊,用于當(dāng)所述統(tǒng)計(jì)模塊統(tǒng)計(jì)得到所述應(yīng)用中的對(duì)象在對(duì)象表中的存儲(chǔ)情況后,判斷是否存在存儲(chǔ)位置大于預(yù)設(shè)值的對(duì)象;
[0135]第三處理模塊,用于當(dāng)所述第十一判斷模塊判斷為否時(shí),或當(dāng)所述第十二判斷模塊判斷為否時(shí),將所述應(yīng)用的使用次數(shù)自加預(yù)設(shè)步長(zhǎng),執(zhí)行應(yīng)用的相應(yīng)操作;
[0136]第十三判斷模塊,用于當(dāng)所述第十二判斷模塊判斷為是時(shí),根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型;
[0137]第七更新模塊,用于當(dāng)所述第十三判斷模塊判斷為讀操作時(shí),更新所述優(yōu)化列表中的讀次數(shù);
[0138]第八更新模塊,用于當(dāng)所述第十三判斷模塊判斷為寫(xiě)操作時(shí),更新所述優(yōu)化列表中的寫(xiě)次數(shù);
[0139]第十四判斷模塊,用于當(dāng)所述第十三判斷模塊判斷為其他操作時(shí),或當(dāng)所述第七更新模塊更新完成后,或當(dāng)所述第八更新模塊更新完成后,執(zhí)行相應(yīng)操作,將所述應(yīng)用的使用次數(shù)加預(yù)設(shè)步長(zhǎng),判斷所述使用次數(shù)與所述優(yōu)化預(yù)設(shè)值之差是否大于采集預(yù)設(shè)值;
[0140]所述發(fā)送模塊,還用于當(dāng)所述第三處理模塊處理完成后,向上位機(jī)返回相應(yīng)數(shù)據(jù);
[0141]所述接收模塊,具體用于當(dāng)所述第十四判斷模塊判斷為否時(shí),接收上位機(jī)發(fā)送的命令;
[0142]所述第一處理模塊,具體用于當(dāng)所述第十四判斷模塊判斷為是時(shí),將內(nèi)部保存的優(yōu)化列表中優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
[0143]所述第七更新模塊,具體包括:
[0144]第三獲取單元,用于當(dāng)所述第十三判斷模塊判斷為讀操作時(shí),根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象;還用于從所述對(duì)象表中獲取所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址;
[0145]第三判斷單元,用于當(dāng)所述第三獲取單元獲取到所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址;
[0146]第三更新單元,用于當(dāng)所述第三判斷單元判斷為是時(shí),更新優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù);
[0147]第三創(chuàng)建單元,用于當(dāng)所述第三判斷單元判斷為否時(shí),根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位;
[0148]所述第八更新模塊,具體包括:
[0149]第四獲取單元,用于當(dāng)所述第十四判斷模塊判斷為寫(xiě)操作時(shí),根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象;還用于從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址;
[0150]第四判斷單元,用于當(dāng)所述第四獲取單元獲取到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址;
[0151]第四更新單元,用于當(dāng)所述第四判斷單元判斷為是時(shí),更新所述優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù);
[0152]第四創(chuàng)建單元,用于當(dāng)所述第四判斷單元判斷為否時(shí),根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為0,并將優(yōu)化標(biāo)識(shí)復(fù)位;
[0153]所述第十四判斷模塊,具體用于當(dāng)所述第四創(chuàng)建單元?jiǎng)?chuàng)建完成后,將所述應(yīng)用的使用次數(shù)加預(yù)設(shè)步長(zhǎng),判斷所述使用次數(shù)與所述優(yōu)化預(yù)設(shè)值之差是否大于采集預(yù)設(shè)值。
[0154]第十五判斷模塊,用于當(dāng)所述接收模塊接收到命令后,根據(jù)接收到的命令,獲取需要優(yōu)化的操作類型;
[0155]第一排序模塊,用于當(dāng)所述第十五判斷模塊判斷為讀優(yōu)化操作時(shí),獲取所述優(yōu)化列表中的讀次數(shù),根據(jù)所述讀次數(shù),對(duì)所述優(yōu)化列表中的信息進(jìn)行排序;
[0156]第二排序模塊,用于當(dāng)所述第十五判斷模塊判斷為寫(xiě)優(yōu)化操作時(shí),獲取所述優(yōu)化列表中的寫(xiě)次數(shù),根據(jù)所述寫(xiě)次數(shù),對(duì)所述優(yōu)化列表中的信息進(jìn)行排序;
[0157]所述第一處理模塊,具體用于當(dāng)所述第一排序模塊排序完成后,獲取排序后的優(yōu)化列表中讀次數(shù)最大且優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象;當(dāng)所述第二排序模塊排序完成后,獲取排序后的優(yōu)化列表中寫(xiě)次數(shù)最大且優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
[0158]所述第一處理模塊,具體用于當(dāng)所述接收模塊接收到命令后,將內(nèi)部保存的優(yōu)化列表中第一個(gè)優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象;
[0159]所述第五判斷模塊,具體用于當(dāng)所述置位模塊將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位后,判斷所述優(yōu)化列表中是否還有優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象;
[0160]所述第二獲取模塊,具體用于當(dāng)所述第五判斷模塊判斷為是時(shí),將所述當(dāng)前優(yōu)化對(duì)象的下一個(gè)優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
[0161]記錄模塊,用于從對(duì)象表中獲取所述對(duì)象的長(zhǎng)度,記錄為對(duì)象長(zhǎng)度表;
[0162]所述第一獲取模塊,具體用于當(dāng)所述記錄模塊記錄得到所述對(duì)象長(zhǎng)度表后,從所述對(duì)象長(zhǎng)度表中獲取當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度。
[0163]所述查找模塊,具體用于執(zhí)行以下操作:
[0164]步驟fl:獲取所述對(duì)象長(zhǎng)度表中的第一個(gè)長(zhǎng)度作為當(dāng)前長(zhǎng)度;
[0165]步驟f2:判斷當(dāng)前長(zhǎng)度是否不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象長(zhǎng)度之差,如果是,則將當(dāng)前長(zhǎng)度對(duì)應(yīng)的對(duì)象作為組合對(duì)象,執(zhí)行步驟f3,否則直接執(zhí)行步驟f3 ;
[0166]步驟f3:判斷所述對(duì)象長(zhǎng)度表中是否還有未查找的長(zhǎng)度,如果是,則將當(dāng)前長(zhǎng)度的下一長(zhǎng)度作為當(dāng)前長(zhǎng)度,執(zhí)行步驟f2,否則得到組合對(duì)象,觸發(fā)所述第四判斷模塊。
[0167]所述第四判斷模塊,具體用于執(zhí)行以下操作:
[0168]步驟gl:將所有空閑存儲(chǔ)空間中的第一部分空閑存儲(chǔ)空間作為當(dāng)前空閑存儲(chǔ)空間;
[0169]步驟g2:判斷所述當(dāng)前空閑存儲(chǔ)空間中是否有空物理頁(yè),如果是,則執(zhí)行步驟g3,否則執(zhí)行步驟g5 ;
[0170]步驟g3:將當(dāng)前空閑存儲(chǔ)空間中的第一個(gè)空物理頁(yè)作為當(dāng)前空物理頁(yè);
[0171]步驟g4:判斷在當(dāng)前空閑存儲(chǔ)空間中是否存在從當(dāng)前空物理頁(yè)的起始位置起長(zhǎng)度大于或等于當(dāng)前優(yōu)化對(duì)象與所述組合對(duì)象長(zhǎng)度之和的連續(xù)存儲(chǔ)空間,如果是,則執(zhí)行步驟S10,否則執(zhí)行步驟g5;
[0172]步驟g5:所述智能卡判斷所有空閑存儲(chǔ)空間中是否還有未處理的空閑存儲(chǔ)空間,如果是,則將當(dāng)前空閑存儲(chǔ)空間的下一空閑存儲(chǔ)空間作為當(dāng)前空閑存儲(chǔ)空間,執(zhí)行步驟g2,否則將當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,觸發(fā)所述接收模塊。
[0173]所述第一更新模塊,還用于當(dāng)所述置位模塊將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位后,將當(dāng)前優(yōu)化對(duì)象置為空閑存儲(chǔ)空間;
[0174]所述第二更新模塊,還用于當(dāng)所述置位模塊將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位后,將當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象置為空閑存儲(chǔ)空間。
[0175]本發(fā)明取得的有益效果是:采用本發(fā)明的技術(shù)方案,能夠?qū)崿F(xiàn)在應(yīng)用運(yùn)行時(shí)對(duì)讀寫(xiě)訪問(wèn)智能卡的操作頻度進(jìn)行優(yōu)化,減少智能卡中對(duì)存儲(chǔ)器的物理頁(yè)的讀寫(xiě)次數(shù),提高了智能卡的使用壽命。
【專利附圖】
【附圖說(shuō)明】
[0176]為了更清楚的說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需待使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0177]圖1和圖2是本發(fā)明實(shí)施例一提供的一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法流程圖;
[0178]圖3和圖4是本發(fā)明實(shí)施例二提供的一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法流程圖;
[0179]圖5和圖6是本發(fā)明實(shí)施例三提供的一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法流程圖;
[0180]圖7是本發(fā)明實(shí)施例四提供的一種優(yōu)化數(shù)據(jù)讀寫(xiě)的裝置圖。
【具體實(shí)施方式】
[0181]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0182]實(shí)施例一
[0183]本發(fā)明實(shí)施例一提供了一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法,如圖1和圖2所示,包括:
[0184]步驟101:智能卡上電;
[0185]步驟102:智能卡等待接收上位機(jī)發(fā)送的命令,當(dāng)接收到命令時(shí),判斷接收到的命令的類型,如果是采集命令,則執(zhí)行步驟103,如果是應(yīng)用命令,則執(zhí)行步驟104,如果是優(yōu)化命令,執(zhí)行步驟117 ;
[0186]優(yōu)選的,智能卡根據(jù)命令的前兩個(gè)字節(jié)判定命令的類型,如果命令的前兩個(gè)字節(jié)為OxOOAA,則接收到的是采集命令,如果命令的前兩個(gè)字節(jié)為OxOOBB,則接收到的是優(yōu)化命令,命令的前兩個(gè)字節(jié)為其他字節(jié)碼,則接收到的是應(yīng)用命令;
[0187]步驟103:智能卡將采集標(biāo)識(shí)位置位,并向上位機(jī)返回開(kāi)始采集響應(yīng),返回步驟102 ;
[0188]步驟104:智能卡獲取采集標(biāo)識(shí)位,判斷所述采集標(biāo)識(shí)位是否置位,如果是,則執(zhí)行步驟105,否則返回不需要采集響應(yīng),返回步驟102 ;
[0189]步驟105:智能卡根據(jù)接收到的應(yīng)用命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則執(zhí)行步驟106,如果是寫(xiě)操作,則執(zhí)行步驟111,如果是其他操作,執(zhí)行相應(yīng)操作,返回相應(yīng)響應(yīng),返回步驟102 ;
[0190]本實(shí)施例中,所述應(yīng)用命令中包括讀操作和/或?qū)懖僮骱?或其他操作,例如,智能卡接收到上位機(jī)發(fā)送的應(yīng)用命令為修改PIN碼命令,則調(diào)用相應(yīng)的修改PIN碼的applet應(yīng)用,該applet應(yīng)用中包括讀原始PIN碼的操作和寫(xiě)新PIN碼的操作;
[0191]步驟106:智能卡根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象;
[0192]本實(shí)施例中,智能卡根據(jù)上位機(jī)發(fā)送的命令獲取內(nèi)部需要執(zhí)行的應(yīng)用,該應(yīng)用為讀操作和寫(xiě)操作提供對(duì)應(yīng)的讀寫(xiě)起始地址和讀寫(xiě)長(zhǎng)度;
[0193]其中,所述對(duì)象表中包括對(duì)象、對(duì)象的起始地址,對(duì)象的長(zhǎng)度和對(duì)象間的引用關(guān)系,所述需要讀取數(shù)據(jù)的讀取地址,具體為所述應(yīng)用命令的數(shù)據(jù)域;
[0194]本實(shí)施例中,所述從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象,具體為:遍歷對(duì)象表中對(duì)象的起始地址,獲取最接近且小于或等于所述讀取地址的起始地址,獲取該起始地址對(duì)應(yīng)的對(duì)象;
[0195]例如,對(duì)象表為:
[0196]
【權(quán)利要求】
1.一種優(yōu)化數(shù)據(jù)讀寫(xiě)的方法,其特征在于,包括: 步驟S1:智能卡上電; 步驟S2:所述智能卡等待接收上位機(jī)發(fā)送的命令; 步驟S3:當(dāng)所述智能卡接收到命令后,將內(nèi)部保存的優(yōu)化列表中優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象; 步驟S4:所述智能卡判斷所述當(dāng)前優(yōu)化對(duì)象的起始地址是否為物理頁(yè)的起始位置,如果是,則將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,執(zhí)行步驟S13,否則執(zhí)行步驟S5 ; 步驟S5:所述智能卡獲取所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度,判斷所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度是否大于或等于預(yù)設(shè)頁(yè)長(zhǎng),如果是,則執(zhí)行步驟S6,否則執(zhí)行步驟S8 ; 步驟S6:所述智能卡判斷所有空閑存儲(chǔ)空間中是否存在以物理頁(yè)的起始位置開(kāi)始,長(zhǎng)度大于當(dāng)前優(yōu)化對(duì)象的連續(xù)存儲(chǔ)空間,如果是,則執(zhí)行步驟S7,否則將當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,執(zhí)行步驟S13 ; 步驟S7:所述智能卡將當(dāng)前優(yōu)化對(duì)象復(fù)制到所述連續(xù)存儲(chǔ)空間,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量,更新所述當(dāng)前優(yōu)化對(duì)象的引用關(guān)系,并將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,執(zhí)行步驟S13 ; 步驟S8:所述智能卡從所述優(yōu)化列表中查找長(zhǎng)度之和不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度之差的多個(gè)對(duì)象,或,長(zhǎng)度不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度之差的對(duì)象,作為組合對(duì)象; 步驟S9:所述智能卡判斷所有空閑存儲(chǔ)空間中是否存在以頁(yè)起始位置開(kāi)始,長(zhǎng)度大于或等于當(dāng)前優(yōu)化對(duì)象與所述組合對(duì)象長(zhǎng)度之和的連續(xù)存儲(chǔ)空間,如果是,則執(zhí)行步驟S10,否則將當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,執(zhí)行步驟S13 ; 步驟SlO:所述智能卡將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象復(fù)制到所述連續(xù)存儲(chǔ)空間; 步驟Sll:所述智能卡根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量和所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度,計(jì)算所述組合對(duì)象相對(duì)于基地址的偏移量,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量更新當(dāng)前優(yōu)化對(duì)象的引用關(guān)系,并根據(jù)所述組合對(duì)象相對(duì)于基地址的偏移量,更新所述組合對(duì)象的引用關(guān)系; 或,所述智能卡根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量和所述組合對(duì)象的長(zhǎng)度,計(jì)算當(dāng)前優(yōu)化對(duì)象相對(duì)于基地址的偏移量,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量更新所述組合對(duì)象的引用關(guān)系,并根據(jù)當(dāng)前優(yōu)化對(duì)象相對(duì)于基地址的偏移量,更新當(dāng)前優(yōu)化對(duì)象的引用關(guān)系; 步驟S12:所述智能卡將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位; 步驟S13:所述智能卡判斷所述優(yōu)化列表中是否還有優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象,如果是,則從所述優(yōu)化列表中獲取優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象,返回執(zhí)行步驟S4,否則向所述上位機(jī)返回優(yōu)化成功響應(yīng),返回步驟S2。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S2中,當(dāng)所述智能卡接收到命令時(shí),還包括:所述智能卡判斷接收到的命令是否為預(yù)設(shè)命令,如果是,則執(zhí)行步驟S3,否則執(zhí)行步驟al ; 步驟al:所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則更新所述優(yōu)化列表中的讀次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是寫(xiě)操作,則更新所述優(yōu)化列表中的寫(xiě)次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是其他操作,執(zhí)行相應(yīng)操作,向所述上位機(jī)返回相應(yīng)響應(yīng),返回步驟S2。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S2中,當(dāng)所述智能卡接收到命令時(shí),還包括:所述智能卡判斷接收到的命令的類型,如果是采集命令,則執(zhí)行步驟bl,如果是優(yōu)化命令,則執(zhí)行步驟S3,如果是應(yīng)用命令,則執(zhí)行步驟b2 ; 步驟bl:所述智能卡將采集標(biāo)識(shí)位置位,并向所述上位機(jī)返回開(kāi)始采集響應(yīng),返回步驟S2 ; 步驟b2:所述智能卡獲取采集標(biāo)識(shí)位,判斷所述采集標(biāo)識(shí)位是否置位,如果是,則執(zhí)行步驟b3,否則向所述上位機(jī)返回不需要采集響應(yīng),返回步驟S2 ; 步驟b3:所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則更新所述優(yōu)化列表中的讀次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是寫(xiě)操作,則更新所述優(yōu)化列表中的寫(xiě)次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是其他操作,執(zhí)行相應(yīng)操作,向所述上位機(jī)返回相應(yīng)響應(yīng),返回步驟S2 ; 所述向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng)之后,還包括將所述采集標(biāo)識(shí)位復(fù)位。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則更新所述優(yōu)化列表中的讀次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是寫(xiě)操作,則更新所述優(yōu)化列表中的寫(xiě)次數(shù),并向所述上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng),返回步驟S2,如果是其他操作,執(zhí)行相應(yīng)操作,向所述上位機(jī)返回相應(yīng)響應(yīng),返回步驟S2,具體為: 步驟Cl:所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則執(zhí)行步驟c2,如果是寫(xiě)操作,則執(zhí)行步驟c7,如果是其他操作,執(zhí)行相應(yīng)操作,返回相應(yīng)響應(yīng),返回步驟S2 ; 步驟c2:所述智能卡根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象; 步驟c3:所述智能卡從所述對(duì)象表中獲取所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址; 步驟c4:所述智能卡判斷從所述優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,如果是,則執(zhí)行步驟c5,否則執(zhí)行步驟c6 ; 步驟c5:所述智能卡更新所述優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù),執(zhí)行步驟cl2 ; 步驟c6:所述智能卡根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位,執(zhí)行步驟cl2 ; 步驟c7:所述智能卡根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象; 步驟c8:所述智能卡從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址; 步驟c9:所述智能卡判斷從所述優(yōu)化列表中是否能找到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,如果是,則執(zhí)行步驟clO,否則執(zhí)行步驟cll ; 步驟ClO:所述智能卡更新優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù),執(zhí)行步驟cl2 ; 步驟cll:所述智能卡根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為0,并將優(yōu)化標(biāo)識(shí)復(fù)位,執(zhí)行步驟cl2 ; 步驟cl2:所述智能卡向上位機(jī)返回?cái)?shù)據(jù)采集成功響應(yīng),返回步驟S2。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S2中,當(dāng)接收到命令時(shí),還包括: 步驟dl:所述智能卡調(diào)用相應(yīng)的應(yīng)用,獲取所述應(yīng)用的使用次數(shù),判斷所述使用次數(shù)是否達(dá)到優(yōu)化預(yù)設(shè)值,如果是,則執(zhí)行步驟d2,否則將所述應(yīng)用的使用次數(shù)自加預(yù)設(shè)步長(zhǎng),執(zhí)行應(yīng)用的相應(yīng)操作,向上位機(jī)返回相應(yīng)數(shù)據(jù),返回步驟S2 ; 步驟d2:所述智能卡統(tǒng)計(jì)所述應(yīng)用中的對(duì)象在對(duì)象表中的存儲(chǔ)情況,判斷是否存在存儲(chǔ)位置大于預(yù)設(shè)值的對(duì)象,如果是,則執(zhí)行步驟d3,否則將所述應(yīng)用的使用次數(shù)自加預(yù)設(shè)步長(zhǎng),執(zhí)行應(yīng)用的相應(yīng)操作,向上位機(jī)返回相應(yīng)數(shù)據(jù),返回步驟S2 ; 步驟d3:所述智能卡根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型,如果是讀操作,則更新所述優(yōu)化列表中的讀次數(shù),執(zhí)行步驟d4,如果是寫(xiě)操作,則更新所述優(yōu)化列表中的寫(xiě)次數(shù),執(zhí)行步驟d4,否則直接執(zhí)行步驟d4,如果是其他操作,則執(zhí)行相應(yīng)操作,執(zhí)行步驟d4 ; 步驟d4:所述智能卡將所述應(yīng)用的使用次數(shù)加預(yù)設(shè)步長(zhǎng),判斷所述使用次數(shù)與所述優(yōu)化預(yù)設(shè)值之差是否大于采集預(yù)設(shè)值,如果是,則執(zhí)行步驟S3,否則返回步驟S2。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟d3,具體為: 步驟d3-l:所述智能卡根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用,根據(jù)所述應(yīng)用,判斷需要執(zhí)行的操作類型,如果是讀操作,則執(zhí)行步驟d3-2,如果是寫(xiě)操作,則執(zhí)行步驟d3-7,如果是其他操作,則執(zhí)行相應(yīng)操作,執(zhí)行步驟d4 ; 步驟d3-2:所述智能卡根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象; 步驟d3-3:所述智能卡從所述對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址;步驟d3-4:所述智能卡判斷從優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,如果是,則執(zhí)行步驟d3-5,否則執(zhí)行步驟d3-6 ; 步驟d3-5:所述智能卡更新優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù),執(zhí)行步驟d4; 步驟d3-6:所述智能卡根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位,執(zhí)行步驟d4 ; 步驟d3-7:所述智能卡根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象; 步驟d3-8:所述智能卡從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址; 步驟d3-9:所述智能卡判斷從優(yōu)化列表中是否能找到寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,如果是,則執(zhí)行步驟d3-10,否則執(zhí)行步驟d3-ll ; 步驟d3-10:所述智能卡更新優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù),執(zhí)行步驟d4; 步驟d3-ll:所述智能卡根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為O,并將優(yōu)化標(biāo)識(shí)復(fù)位,執(zhí)行步驟d4。
7.根據(jù)權(quán)利要求2或3或5中任一所述的方法,其特征在于,所述步驟S3,具體包括: 所述智能卡接收到命令后,根據(jù)接收到的命令,獲取需要優(yōu)化的操作類型,如果是讀優(yōu)化操作,則執(zhí)行步驟el,如果是寫(xiě)優(yōu)化操作,則執(zhí)行步驟e2 ; 步驟el:所述智能卡獲取所述優(yōu)化列表中的讀次數(shù),根據(jù)所述讀次數(shù),對(duì)所述優(yōu)化列表中的信息進(jìn)行排序,并獲取排序后的優(yōu)化列表中讀次數(shù)最大且優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象; 步驟e2:所述智能卡獲取所述優(yōu)化列表中的寫(xiě)次數(shù),根據(jù)所述寫(xiě)次數(shù),對(duì)所述優(yōu)化列表中的信息進(jìn)行排序,并獲取排序后的優(yōu)化列表中寫(xiě)次數(shù)最大且優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述步驟S2,具體為:當(dāng)所述智能卡接收到命令后,將內(nèi)部保存的優(yōu)化列表中第一個(gè)優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象; 所述步驟S13,具體為:所述智能卡判斷所述優(yōu)化列表中是否還有優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象,如果是,則將所述當(dāng)前優(yōu)化對(duì)象的下一個(gè)優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象,返回執(zhí)行步驟S4,否則向所述上位機(jī)返回優(yōu)化成功響應(yīng),返回步驟S2。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述步驟S4之前還包括:從對(duì)象表中獲取所述對(duì)象的長(zhǎng)度,將所述對(duì)象的長(zhǎng)度記錄到對(duì)象長(zhǎng)度表中; 所述步驟S5中,所述獲取所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度,具體為:從所述對(duì)象長(zhǎng)度表中獲取當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述步驟S8,具體包括: 步驟fl:所述智能卡獲取所述對(duì)象長(zhǎng)度表中的第一個(gè)長(zhǎng)度作為當(dāng)前長(zhǎng)度; 步驟f2:所述智能卡判斷當(dāng)前長(zhǎng)度是否不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象長(zhǎng)度之差,如果是,則將當(dāng)前長(zhǎng)度對(duì)應(yīng)的對(duì)象作為組合對(duì)象,執(zhí)行步驟f3,否則直接執(zhí)行步驟f3 ; 步驟f3:所述智能卡判斷所述對(duì)象長(zhǎng)度表中是否還有未查找的長(zhǎng)度,如果是,則將當(dāng)前長(zhǎng)度的下一長(zhǎng)度作為當(dāng)前長(zhǎng)度,執(zhí)行步驟f2,否則得到組合對(duì)象,執(zhí)行步驟S9。
11.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S9,具體包括: 步驟gl:所述智能卡將所有空閑存儲(chǔ)空間中的第一部分空閑存儲(chǔ)空間作為當(dāng)前空閑存儲(chǔ)空間; 步驟g2:所述智能卡判斷所述當(dāng)前空閑存儲(chǔ)空間中是否有空物理頁(yè),如果是,則執(zhí)行步驟g3,否則執(zhí)行步驟g5; 步驟g3:所述智能卡將當(dāng)前空閑存儲(chǔ)空間中的第一個(gè)空物理頁(yè)作為當(dāng)前空物理頁(yè); 步驟g4:所述智能卡判斷在當(dāng)前空閑存儲(chǔ)空間中是否存在從當(dāng)前空物理頁(yè)的起始位置起長(zhǎng)度大于或等于當(dāng)前優(yōu)化對(duì)象與所述組合對(duì)象長(zhǎng)度之和的連續(xù)存儲(chǔ)空間,如果是,則執(zhí)行步驟S10,否則執(zhí)行步驟g5 ; 步驟g5:所述智能卡判斷所有空閑存儲(chǔ)空間中是否還有未處理的空閑存儲(chǔ)空間,如果是,則將當(dāng)前空閑存儲(chǔ)空間的下一空閑存儲(chǔ)空間作為當(dāng)前空閑存儲(chǔ)空間,執(zhí)行步驟g2,否則將當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,返回步驟S2。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述步驟S7還包括:所述智能卡將當(dāng)前優(yōu)化對(duì)象置為空閑存儲(chǔ)空間; 所述步驟S12還包括:所述智能卡將當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象置為空閑存儲(chǔ)空間。
13.一種優(yōu)化數(shù)據(jù)讀寫(xiě)的裝置,其特征在于,包括: 接收模塊,用于接收上位機(jī)發(fā)送的命令; 第一處理模塊,用于當(dāng)所述接收模塊接收到命令后,將內(nèi)部保存的優(yōu)化列表中優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象; 第一判斷模塊,用于當(dāng)所述第一處理模塊處理得到當(dāng)前優(yōu)化對(duì)象后,判斷所述當(dāng)前優(yōu)化對(duì)象的起始地址是否為物理頁(yè)的起始位置; 第一獲取模塊,用于當(dāng)所述第一判斷模塊判斷為否時(shí),獲取所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度; 第二判斷模塊,用于當(dāng)所述第一獲取模塊獲取到所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度時(shí),判斷所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度是否大于或等于預(yù)設(shè)頁(yè)長(zhǎng); 第三判斷模塊,用于當(dāng)所述第二判斷模塊判斷為是時(shí),判斷所有空閑存儲(chǔ)空間中是否存在以物理頁(yè)的起始位置開(kāi)始,長(zhǎng)度大于當(dāng)前優(yōu)化對(duì)象的連續(xù)存儲(chǔ)空間; 第一更新模塊,用于當(dāng)所述第三判斷模塊判斷為是時(shí),將當(dāng)前優(yōu)化對(duì)象復(fù)制到所述連續(xù)存儲(chǔ)空間,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量,更新所述當(dāng)前優(yōu)化對(duì)象的引用關(guān)系,并所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位; 查找模塊,用于當(dāng)所述第二判斷模塊判斷為否時(shí),從所述優(yōu)化列表中查找長(zhǎng)度之和不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度之差的多個(gè)對(duì)象,或,長(zhǎng)度不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度之差的對(duì)象,作為組合對(duì)象; 第四判斷模塊,用于當(dāng)所述查找模塊查找到所述組合對(duì)象后,判斷所有空閑存儲(chǔ)空間中是否存在以頁(yè)起始位置開(kāi)始,長(zhǎng)度大于或等于當(dāng)前優(yōu)化對(duì)象與所述組合對(duì)象長(zhǎng)度之和的連續(xù)存儲(chǔ)空間; 第二處理模塊,用于當(dāng)所述第四判斷模塊判斷為是時(shí),將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象復(fù)制到所述連續(xù)存儲(chǔ)空間; 計(jì)算模塊,用于當(dāng)所述第二處理模塊處理完成后,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量和所述當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度,計(jì)算所述組合對(duì)象相對(duì)于基地址的偏移量,或,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量和所述組合對(duì)象的長(zhǎng)度,計(jì)算當(dāng)前優(yōu)化對(duì)象相對(duì)于基地址的偏移量; 第二更新模塊,用于當(dāng)所述計(jì)算模塊計(jì)算得到所述組合對(duì)象相對(duì)于基地址的偏移量后,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量更新當(dāng)前優(yōu)化對(duì)象的引用關(guān)系,并根據(jù)所述組合對(duì)象相對(duì)于基地址的偏移量,更新所述組合對(duì)象的引用關(guān)系,或,根據(jù)所述連續(xù)存儲(chǔ)空間相對(duì)于基地址的偏移量更新所述組合對(duì)象的引用關(guān)系,并根據(jù)當(dāng)前優(yōu)化對(duì)象相對(duì)于基地址的偏移量,更新當(dāng)前優(yōu)化對(duì)象的引用關(guān)系; 置位模塊,用于當(dāng)所述第一判斷模塊判斷為是時(shí),將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位;還用于當(dāng)所述第三判斷模塊判斷為否時(shí),將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位;還用于當(dāng)所述第一更新模塊更新完成后,將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位;還用于當(dāng)所述第二更新模塊更新完成后,將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位; 第五判斷模塊,用于當(dāng)所述置位模塊將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位后,判斷所述優(yōu)化列表中是否還有優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象; 第二獲取模塊,用于當(dāng)所述第五判斷模塊判斷為是時(shí),從所述優(yōu)化列表中獲取優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象; 發(fā)送模塊,用于當(dāng)所述第五判斷模塊判斷為否時(shí),向所述上位機(jī)返回優(yōu)化成功響應(yīng)。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,還包括: 第六判斷模塊,用于當(dāng)所述接收模塊接收到命令時(shí),判斷接收到的命令是否為預(yù)設(shè)命令; 第一調(diào)用模塊,用于當(dāng)所述第六判斷模塊判斷為否時(shí),根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用; 第七判斷模塊,用于當(dāng)所述第一調(diào)用單元調(diào)用相應(yīng)的應(yīng)用后,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型; 第三更新模塊,用于當(dāng)所述第七判斷模塊判斷為讀操作時(shí),更新所述優(yōu)化列表中的讀次數(shù); 第四更新模塊,用于當(dāng)所述第七判斷模塊判斷為寫(xiě)操作時(shí),更新所述優(yōu)化列表中的寫(xiě)次數(shù); 所述發(fā)送模塊,還用于當(dāng)所述第三更新單元更新完成后,向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng);還用于當(dāng)所述第四更新單元更新完成后,向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng);還用于當(dāng)所述第七判斷模塊判斷為其他操作時(shí),執(zhí)行相應(yīng)操作,向上位機(jī)返回相應(yīng)響應(yīng);所述第一處理模塊,具體用于當(dāng)所述第六判斷模塊判斷為是時(shí),將內(nèi)部保存的優(yōu)化列表中優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
15.根據(jù)權(quán)利要求13所述的裝置,其特征在于,還包括: 第八判斷模塊,用于當(dāng)所述接收模塊接收到命令時(shí),判斷接收到的命令的類型; 第九判斷模塊,用于當(dāng)所述第八判斷模塊判斷為應(yīng)用命令時(shí),獲取采集標(biāo)識(shí)位,判斷所述采集標(biāo)識(shí)位是否置位; 第二調(diào)用模塊,用于當(dāng)所述第九判斷模塊判斷為是時(shí),根據(jù)接收到的命令,調(diào)用相應(yīng)的應(yīng)用; 第十判斷模塊,用于當(dāng)所述第二調(diào)用單元調(diào)用相應(yīng)的應(yīng)用后,根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型; 第五更新模塊,用于當(dāng)所述第十判斷模塊判斷為讀操作時(shí),更新所述優(yōu)化列表中的讀次數(shù); 第六更新模塊,用于當(dāng)所述第十判斷模塊判斷為寫(xiě)操作時(shí),更新所述優(yōu)化列表中的寫(xiě)次數(shù); 所述置位模塊,還用于當(dāng)所述第八判斷模塊判斷為采集命令時(shí),將采集標(biāo)識(shí)位置位; 所述發(fā)送模塊,還用于當(dāng)所述置位模塊將采集標(biāo)識(shí)位置位時(shí),向上位機(jī)返回開(kāi)始采集響應(yīng);還用于當(dāng)所述第九判斷模塊判斷為否時(shí),向上位機(jī)返回不需要采集響應(yīng);還用于當(dāng)所述第五更新模塊更新完成后,向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng);還用于當(dāng)所述第六更新模塊更新完成后,向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng); 所述裝置還包括:復(fù)位模塊,用于當(dāng)所述發(fā)送模塊向上位機(jī)返回命令數(shù)據(jù)采集成功響應(yīng)后,將所述采集標(biāo)識(shí)位復(fù)位。
16.根據(jù)權(quán)利要求14所述的裝置,其特征在于, 所述第三更新模塊,具體包括: 第一獲取單元,用于當(dāng)所述第七判斷模塊或所述第九判斷模塊判斷為讀操作時(shí),根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象;還用于從所述對(duì)象表中獲取所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址; 第一判斷單元,用于當(dāng)所述第一獲取單元獲取到所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址; 第一更新單元,用于當(dāng)所述第一判斷單元判斷為是時(shí),更新優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù); 第一創(chuàng)建單元,用于當(dāng)所述第一判斷單元判斷為否時(shí),根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位; 所述第四更新模塊,具體包括: 第二獲取單元,用于當(dāng)所述第七判斷模塊或所述第九判斷模塊判斷為寫(xiě)操作時(shí),根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象;還用于從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址; 第二判斷單元,用于當(dāng)所述第二獲取單元獲取到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址; 第二更新單元,用于當(dāng)所述第二判斷單元判斷為是時(shí),更新所述優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù); 第二創(chuàng)建單元,用于當(dāng)所述第二判斷單元判斷為否時(shí),根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位。
17.根據(jù)權(quán)利要求15所述的裝置,其特征在于, 所述第五更新模塊,具體包括: 第三獲取單元,用于當(dāng)所述第七判斷模塊或所述第九判斷模塊判斷為讀操作時(shí),根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象;還用于從所述對(duì)象表中獲取所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址; 第三判斷單元,用于當(dāng)所述第一獲取單元獲取到所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址; 第三更新單元,用于當(dāng)所述第一判斷單元判斷為是時(shí),更新優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù); 第三創(chuàng)建單元,用于當(dāng)所述第一判斷單元判斷為否時(shí),根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位; 所述第六更新模塊,具體包括: 第四獲取單元,用于當(dāng)所述第七判斷模塊或所述第九判斷模塊判斷為寫(xiě)操作時(shí),根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象;還用于從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址; 第四判斷單元,用于當(dāng)所述第二獲取單元獲取到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址; 第四更新單元,用于當(dāng)所述第二判斷單元判斷為是時(shí),更新所述優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù); 第四創(chuàng)建單元,用于當(dāng)所述第二判斷單元判斷為否時(shí),根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位。
18.根據(jù)權(quán)利要求13所述的裝置,其特征在于,還包括: 第三調(diào)用模塊,用于當(dāng)所述接收模塊接收到命令時(shí),調(diào)用相應(yīng)的應(yīng)用; 第三獲取模塊,用于當(dāng)所述第三調(diào)用模塊調(diào)用相應(yīng)的應(yīng)用后,獲取所述應(yīng)用的使用次數(shù); 第十一判斷模塊,用于當(dāng)所述第三獲取模塊獲取到所述應(yīng)用的使用次數(shù)后,判斷所述使用次數(shù)是否達(dá)到優(yōu)化預(yù)設(shè)值; 統(tǒng)計(jì)模塊,用于當(dāng)所述第十一判斷模塊判斷為是時(shí),統(tǒng)計(jì)所述應(yīng)用中的對(duì)象在對(duì)象表中的存儲(chǔ)情況; 第十二判斷模塊,用于當(dāng)所述統(tǒng)計(jì)模塊統(tǒng)計(jì)得到所述應(yīng)用中的對(duì)象在對(duì)象表中的存儲(chǔ)情況后,判斷是否存在存儲(chǔ)位置大于預(yù)設(shè)值的對(duì)象; 第三處理模塊,用于當(dāng)所述第十一判斷模塊判斷為否時(shí),或當(dāng)所述第十二判斷模塊判斷為否時(shí),將所述應(yīng)用的使用次數(shù)自加預(yù)設(shè)步長(zhǎng),執(zhí)行應(yīng)用的相應(yīng)操作; 第十三判斷模塊,用于當(dāng)所述第十二判斷模塊判斷為是時(shí),根據(jù)所述應(yīng)用判斷需要執(zhí)行的操作類型; 第七更新模塊,用于當(dāng)所述第十三判斷模塊判斷為讀操作時(shí),更新所述優(yōu)化列表中的讀次數(shù); 第八更新模塊,用于當(dāng)所述第十三判斷模塊判斷為寫(xiě)操作時(shí),更新所述優(yōu)化列表中的寫(xiě)次數(shù); 第十四判斷模塊,用于當(dāng)所述第十三判斷模塊判斷為其他操作時(shí),或當(dāng)所述第七更新模塊更新完成后,或當(dāng)所述第八更新模塊更新完成后,執(zhí)行相應(yīng)操作,將所述應(yīng)用的使用次數(shù)加預(yù)設(shè)步長(zhǎng),判斷所述使用次數(shù)與所述優(yōu)化預(yù)設(shè)值之差是否大于采集預(yù)設(shè)值; 所述發(fā)送模塊,還用于當(dāng)所述第三處理模塊處理完成后,向上位機(jī)返回相應(yīng)數(shù)據(jù); 所述接收模塊,具體用于當(dāng)所述第十四判斷模塊判斷為否時(shí),接收上位機(jī)發(fā)送的命令; 所述第一處理模塊,具體用于當(dāng)所述第十四判斷模塊判斷為是時(shí),將內(nèi)部保存的優(yōu)化列表中優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于, 所述第七更新模塊,具體包括: 第三獲取單元,用于當(dāng)所述第十三判斷模塊判斷為讀操作時(shí),根據(jù)需要執(zhí)行的讀操作,獲取需要讀取數(shù)據(jù)的讀取地址,從對(duì)象表中獲取與所述讀取地址對(duì)應(yīng)的對(duì)象;還用于從所述對(duì)象表中獲取所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址; 第三判斷單元,用于當(dāng)所述第三獲取單元獲取到所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到與所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址; 第三更新單元,用于當(dāng)所述第三判斷單元判斷為是時(shí),更新優(yōu)化列表中所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址的讀次數(shù); 第三創(chuàng)建單元,用于當(dāng)所述第三判斷單元判斷為否時(shí),根據(jù)所述讀取地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將對(duì)應(yīng)的寫(xiě)次數(shù)置為第二數(shù)值,并將優(yōu)化標(biāo)識(shí)復(fù)位; 所述第八更新模塊,具體包括: 第四獲取單元,用于當(dāng)所述第十四判斷模塊判斷為寫(xiě)操作時(shí),根據(jù)需要執(zhí)行的寫(xiě)操作,獲取需要寫(xiě)數(shù)據(jù)的寫(xiě)地址,從對(duì)象表中獲取與所述寫(xiě)地址對(duì)應(yīng)的對(duì)象;還用于從對(duì)象表中獲取所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址; 第四判斷單元,用于當(dāng)所述第四獲取單元獲取到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址時(shí),判斷從所述優(yōu)化列表中是否能找到所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址; 第四更新單元,用于當(dāng)所述第四判斷單元判斷為是時(shí),更新所述優(yōu)化列表中所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址的寫(xiě)次數(shù); 第四創(chuàng)建單元,用于當(dāng)所述第四判斷單元判斷為否時(shí),根據(jù)所述寫(xiě)地址對(duì)應(yīng)的對(duì)象的起始地址,在優(yōu)化列表中創(chuàng)建一條新記錄,將對(duì)應(yīng)的讀次數(shù)置為第一數(shù)值,將寫(xiě)次數(shù)置為O,并將優(yōu)化標(biāo)識(shí)復(fù)位; 所述第十四判斷模塊,具體用于當(dāng)所述第四創(chuàng)建單元?jiǎng)?chuàng)建完成后,將所述應(yīng)用的使用次數(shù)加預(yù)設(shè)步長(zhǎng),判斷所述使用次數(shù)與所述優(yōu)化預(yù)設(shè)值之差是否大于采集預(yù)設(shè)值。
20.根據(jù)權(quán)利要求14或15或18中任一所述的裝置,其特征在于,所述裝置還包括: 第十五判斷模塊,用于當(dāng)所述接收模塊接收到命令后,根據(jù)接收到的命令,獲取需要優(yōu)化的操作類型; 第一排序模塊,用于當(dāng)所述第十五判斷模塊判斷為讀優(yōu)化操作時(shí),獲取所述優(yōu)化列表中的讀次數(shù),根據(jù)所述讀次數(shù),對(duì)所述優(yōu)化列表中的信息進(jìn)行排序; 第二排序模塊,用于當(dāng)所述第十五判斷模塊判斷為寫(xiě)優(yōu)化操作時(shí),獲取所述優(yōu)化列表中的寫(xiě)次數(shù),根據(jù)所述寫(xiě)次數(shù),對(duì)所述優(yōu)化列表中的信息進(jìn)行排序; 所述第一處理模塊,具體用于當(dāng)所述第一排序模塊排序完成后,獲取排序后的優(yōu)化列表中讀次數(shù)最大且優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象;當(dāng)所述第二排序模塊排序完成后,獲取排序后的優(yōu)化列表中寫(xiě)次數(shù)最大且優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
21.根據(jù)權(quán)利要求13所述的裝置,其特征在于, 所述第一處理模塊,具體用于當(dāng)所述接收模塊接收到命令后,將內(nèi)部保存的優(yōu)化列表中第一個(gè)優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象; 所述第五判斷模塊,具體用于當(dāng)所述置位模塊將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位后,判斷所述優(yōu)化列表中是否還有優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象; 所述第二獲取模塊,具體用于當(dāng)所述第五判斷模塊判斷為是時(shí),將所述當(dāng)前優(yōu)化對(duì)象的下一個(gè)優(yōu)化標(biāo)識(shí)復(fù)位的對(duì)象作為當(dāng)前優(yōu)化對(duì)象。
22.根據(jù)權(quán)利要求13所述的裝置,其特征在于,還包括: 記錄模塊,用于從對(duì)象表中獲取所述對(duì)象的長(zhǎng)度,記錄為對(duì)象長(zhǎng)度表; 所述第一獲取模塊,具體用于當(dāng)所述記錄模塊記錄得到所述對(duì)象長(zhǎng)度表后,從所述對(duì)象長(zhǎng)度表中獲取當(dāng)前優(yōu)化對(duì)象的長(zhǎng)度。
23.根據(jù)權(quán)利要求22所述的裝置,其特征在于, 所述查找模塊,具體用于執(zhí)行以下操作: 步驟fl:獲取所述對(duì)象長(zhǎng)度表中的第一個(gè)長(zhǎng)度作為當(dāng)前長(zhǎng)度; 步驟f2:判斷當(dāng)前長(zhǎng)度是否不大于預(yù)設(shè)頁(yè)長(zhǎng)與當(dāng)前優(yōu)化對(duì)象長(zhǎng)度之差,如果是,則將當(dāng)前長(zhǎng)度對(duì)應(yīng)的對(duì)象作為組合對(duì)象,執(zhí)行步驟f3,否則直接執(zhí)行步驟f3 ; 步驟f3:判斷所述對(duì)象長(zhǎng)度表中是否還有未查找的長(zhǎng)度,如果是,則將當(dāng)前長(zhǎng)度的下一長(zhǎng)度作為當(dāng)前長(zhǎng)度,執(zhí)行步驟f2,否則得到組合對(duì)象,觸發(fā)所述第四判斷模塊。
24.根據(jù)權(quán)利要求13所述的裝置,其特征在于, 所述第四判斷模塊,具體用于執(zhí)行以下操作: 步驟gl:將所有空閑存儲(chǔ)空間中的第一部分空閑存儲(chǔ)空間作為當(dāng)前空閑存儲(chǔ)空間;步驟g2:判斷所述當(dāng)前空閑存儲(chǔ)空間中是否有空物理頁(yè),如果是,則執(zhí)行步驟g3,否則執(zhí)行步驟g5 ; 步驟g3:將當(dāng)前空閑存儲(chǔ)空間中的第一個(gè)空物理頁(yè)作為當(dāng)前空物理頁(yè); 步驟g4:判斷在當(dāng)前空閑存儲(chǔ)空間中是否存在從當(dāng)前空物理頁(yè)的起始位置起長(zhǎng)度大于或等于當(dāng)前優(yōu)化對(duì)象與所述組合對(duì)象長(zhǎng)度之和的連續(xù)存儲(chǔ)空間,如果是,則執(zhí)行步驟S10,否則執(zhí)行步驟g5 ; 步驟g5:所述智能卡判斷所有空閑存儲(chǔ)空間中是否還有未處理的空閑存儲(chǔ)空間,如果是,則將當(dāng)前空閑存儲(chǔ)空間的下一空閑存儲(chǔ)空間作為當(dāng)前空閑存儲(chǔ)空間,執(zhí)行步驟g2,否則將當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位,觸發(fā)所述接收模塊。
25.根據(jù)權(quán)利要求13所述的裝置,其特征在于, 所述第一更新模塊,還用于當(dāng)所述置位模塊將所述當(dāng)前優(yōu)化對(duì)象的優(yōu)化標(biāo)識(shí)置位后,將當(dāng)前優(yōu)化對(duì)象置為空閑存儲(chǔ)空間; 所述第二更新模塊,還用于當(dāng)所述置位模塊將所述當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象的優(yōu)化標(biāo)識(shí)置位后,將當(dāng)前優(yōu)化對(duì)象和所述組合對(duì)象置為空閑存儲(chǔ)空間。
【文檔編號(hào)】G06F12/06GK104182358SQ201410414727
【公開(kāi)日】2014年12月3日 申請(qǐng)日期:2014年8月21日 優(yōu)先權(quán)日:2014年8月21日
【發(fā)明者】陸舟, 于華章 申請(qǐng)人:飛天誠(chéng)信科技股份有限公司